-
servlet中@webServlet注解出错导致404
2019-04-17 16:54:31servlet中@webServlet注解出错导致404,问题描述:我自己写了一个jsp的表格用post请求访问Servlet,但是不管路径怎么写都不对,一直报404错误问题描述:我自己写了一个jsp的表格用post请求访问Servlet,但是不管路径怎么写都不对,一直报404错误
bug原因及解决方法:@WebServlet注解里的name属性对应着<servlet-name>,我只写了name,没有配置<url-pattern>(路径就对应于这个),<url-pattern>对应的注解是urlpatterns或者value,value介意省略不写。所以修改@WebServlet里面的值就好了。
@WebServlet(name="Cservlet",urlpatterns="/CServlet"); //第一种写法,使用urlpatterns属性 @WebServlet("/CServlet") //第二种写法,使用value属性
更多字段可以去官网查询 https://docs.oracle.com/javaee/7/api/ 查找javax.servlet.annotation中的WebServletbin
-
加@WebServlet注解后URI跳Servlet失败(例如验证码功能)
2016-12-21 10:08:59刚做了一个登陆界面,用了WebServlet注解,发现验证码怎么也刷新不了,调试之后发现根本没有进入验证码生成的方法中去。这是我想肯定是注解或者XML文件出问题了。我用了原始的在XML文件中配置servlet. verifyCode ...刚做了一个登陆界面,用了WebServlet注解,发现验证码怎么也刷新不了,调试之后发现根本没有进入验证码生成的方法中去。这是我想肯定是注解或者XML文件出问题了。我用了原始的在XML文件中配置servlet.
然后取消生成验证码的注解<servlet> <servlet-name>verifyCode</servlet-name> <servlet-class>cn.sh.ideal.util.VerifyCode</servlet-class> </servlet> <servlet-mapping> <servlet-name>verifyCode</servlet-name> <url-pattern>/VerifyCode</url-pattern><!--这个和src的名字一样--> </servlet-mapping>
然后我发现可以,生成验证码。然后我发现tomcat6需要用这个,而注解这个方式需要用tomcat7.package cn.sh.ideal.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; //@WebServlet("/verifyCode") public class VerifyCode extends HttpServlet { private static final long serialVersionUID = 7819264488896491500L; private static Logger logger = Logger.getLogger(VerifyCode.class); protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { System.out.println("進來了"); String data = "0123456789"; Random random = new Random(); int width = 60; int height = 30; BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); Graphics2D g = (Graphics2D) image.getGraphics(); g.setColor(Color.GREEN); g.fillRect(0, 0, width, height); g.setColor(Color.WHITE); g.fillRect(1, 1, width -1, height - 3); g.setFont(new Font("宋体", Font.PLAIN, 20)); StringBuilder builder = new StringBuilder(); for (int i = 0; i < 4; i++) { g.setColor(new Color(24, 88,129)); int index = random.nextInt(data.length()); String str = data.substring(index, index + 1); builder.append(str); g.rotate(Math.PI / 150, 1, 1); g.drawString(str, (i + 1) * (width / 5), 13); } //logger.info(builder.toString()); request.getSession().setAttribute("identiCodeInSession",builder.toString()); for (int i = 0; i < 5; i++) { g.setColor(new Color(random.nextInt(255), random.nextInt(255),random.nextInt(255))); g.drawLine(random.nextInt(width), random.nextInt(height),random.nextInt(width), random.nextInt(height)); } response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); ImageIO.write(image, "jpeg", response.getOutputStream()); } }
注释web.xml文件中的servlet配置,然后取消@Webservlet注解的注释。发现可以完美生成验证码。
-
javaWeb自定义可排序过滤器注解,解决Servlet3.0下@WebFilter注解无法排序问题
2016-02-14 13:04:04需要用的jar不知道怎么上传,需要的请留下邮箱 用该注解注册的Filter默认在部署描述符中的过滤器加载后加载,可以使用isMatchAfter更改加载顺序 为Filter排序注解,排序从1开始,1优先级最高 以url-pattern 过滤的...自定义注释 @WebFilterSort
实现源码: https://download.csdn.net/download/u013202238/12451011
编译后的jar包 http://download.csdn.net/detail/u013202238/9431110使用demo, 创建三个Filter,分别为 MyFilter1,MyFilter2,MyFilter3,内容如下,分别指定Order为3、2、1
@WebFilterSort(order = 3) public class MyFilter1 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println(MyFilter1.class.getName() + " init"); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println(MyFilter1.class.getName() + " before doFilter"); filterChain.doFilter(servletRequest, servletResponse); System.out.println(MyFilter1.class.getName() + " after doFilter"); } @Override public void destroy() { System.out.println(MyFilter1.class.getName() + " destroy"); } }
无论使用@javax.servlet.annotation.WebFilter或@WebFilterSort注解注册的Filter默认都在web.xml部署描述符中的过滤器加载后加载,可以使用isMatchAfter更改加载顺序
以url-pattern 过滤的最先执行,以servlet-name 过滤的在全部url-pattern执行后执行
在web.xml中设置参数<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <context-param> < description>被扫描的过滤器的所在包< /description> < param-name>filterPackage< /param-name> < param-value>com.test.filter.pack< /param-value> </context-param> <context-param> <description>是否扫描jar包中的类,默认为false不扫描</description> <param-name>filterInitScanJar</param-name> <param-value>false</param-value> </context-param> <context-param> <description>是否打印过滤器初始化信息(按排序顺序),默认false不打印,如果不打印可以不配置该参数</description> <param-name>filterInitDebug</param-name> <param-value>false</param-value> </context-param> </web-app>
filterPackage 必填,包范围越小越好
filterInitScanJar 选填 是否扫描jar包中的类,默认为false不扫描
filterInitDebug 选填 是否打印过滤器初始化信息(按排序顺序),默认false不打印,如果不打印可以不配置该参数在未指定排序时@WebFilter执行循序是按照被扫描到的循序执行的,
使用@WebFilterSort注解后,可以指定执行顺序,执行Filter
注解参数说明, 个参数等效于 @WebFilter中的参数
所需元素 限定符和类型 必需的元素和说明 int
value (等同于order)
排序优先级可选元素 限定符和类型 可选元素和说明 boolean
asyncSupported
Declares whether the filter supports asynchronous operation mode.(默认false)DispatcherType[]
dispatcherTypes
The dispatcher types to which the filter applies
default {DispatcherType.REQUEST};java.lang.String
displayName
The display name of the filter,默认值 ""java.lang.String
filterName
The name of the filter,默认值 ""boolean
isMatchAfter
表示该过滤器相对于部署描述符中过滤器的顺序
如果使用的参数为false,那么该过滤器映射将在部署描述符中描述的所有过滤器加载前进行加载,
如果为true( 默认 ),那么部署描述符中的过滤器将先被加载java.lang.String[]
servletNames
The names of the servlets to which the filter applies.java.lang.String[]
urlPatterns
The URL patterns to which the filter applies,default {"/*"} -
servlet3注解
2013-11-07 16:37:13今天再次用了下servlet3.1,我无论在类怎么写注解,发现没作用...这时找servlet3的规范了.终于找到我的问题的原因. servlet3.1 final release:http://download.oracle.com/otndocs/jcp/servlet-3_1-fr-spec/index.html...今天再次用了下servlet3.1,我无论在类怎么写注解,发现没作用...这时找servlet3的规范了.终于找到我的问题的原因.
servlet3.1 final release:http://download.oracle.com/otndocs/jcp/servlet-3_1-fr-spec/index.html
第8章就说到注解与可插拔性.
In a web application, classes using annotations will have their annotations processed
only if they are located in the WEB-INF/classes directory, or if they are packaged
in a jar file located in WEB-INF/lib within the application.在web应用里,使用了注解的类,只有放到 WEB-INF/classes目录下或打成jar文件包放到WEB-INF/lib目录下才会处理它们的注解
.那放在其它地方就不会处理了???
1.做一下classes的windows快捷方式(这个相当于linux下的软链接),不管你成不成功,反正我没有成功!!!.不知linux成不成功,暂时没环境,不理.
2.再修改tomcat的conf/catalina.properties的shared.loader=,让tomcat加载这些类,反正是成功了!!!!
The web application deployment descriptor contains a new “metadata-complete”
attribute on the web-app element. The “metadata-complete” attribute defines
whether the web descriptor is complete, or whether the class files of the jar file
should be examined for annotations and web fragments at deployment time. If
“metadata-complete” is set to "true", the deployment tool MUST ignore any
servlet annotations that specify deployment information present in the class files of
the application and web fragments. If the metadata-complete attribute is not
specified or is set to "false", the deployment tool must examine the class files of the
application for annotations, and scan for web fragments.web应用部署描述器(指的是web.xml)在web-app元素上包含了一个新的“metadata-complete” 属性,“metadata-complete” 属性是用来定义web描述器是不是完整的.
或者说是在部署的时候,类文件和jar文件是否要检验注解和片断(这个陌生).如果“metadata-complete” 设为"true",那部署工具一定会忽略......
如果“metadata-complete” 没有指定,或设为"false",部署工具必须检查应用的类文件注解和扫描web片断.
如果web.xml和注解都指定某个类为servlet会怎样呢,会冲突吗???狂汗.....
url-pattern不能相撞,否则tomcat死掉,启动都不让!!!!很容易理解哈....
因为我复制了tomcat examples下面的xml文件,metadata-complete也刚好是true.傻了吧.
-
解决Eclipse创建Maven项目时servlet的注解出错,报404错误
2020-05-22 18:19:401.现在各种培训机构或是网络教程使用的IDE都是IDEA,感觉都没人用Eclipse了。...主要原因就是:Dynamic Web Module版本太低,不能使用servlet注解.这里的版本改到3.0以上就可以使用了。更多的消息可以点击这一栏查 -
怎么实现注解_注解就这么简单
2021-01-14 03:39:44出自:Java3y ...但如果开发过Servlet,就对@WebServlet不会陌生。现在的开发都推崇使用注解来进行开发,这样就可以免去写XML配置了,十分方便的一项技术~学习注解可... -
怎么实现注解_Java后端精选技术:注解就这么简单
2021-01-12 21:18:25但如果开发过Servlet,就对@WebServlet不会陌生。现在的开发都推崇使用注解来进行开发,这样就可以免去写XML配置了,十分方便的一项技术~学习注解可以更好地理解注解是怎么工作的,看见注解了就可以想到它的运行... -
Servlet3.0之动态注册web3大组件
2020-06-03 12:55:54在上一篇中我们可以使用注解注册自己编写的组件,但是对于第三方的组件,没有了web.xml,我们不能直接到人家类上去贴个注解,这时候该怎么呢。就得使用servlet3.0的 Sharedlibraries(共享库) / runtimes ... -
恭喜,以后写过滤器可以不用配置web.xml,因为有注解标志过滤器@WebFilter
2018-11-16 15:22:37@WebFilter讲解 以前我们写过滤器的时候,总要在web.xml配置过滤...之后我查了api,说这个是注解标志过滤器,Servlet 3.0出现的,那他怎么用呢? @WebFilter(filterName,urlPatterns); 有两个参数,第一个可选,是... -
注解就这么简单
2018-04-02 12:07:59但如果开发过Servlet,就对@WebServlet不会陌生。 现在的开发都推崇使用注解来进行开发,这样就可以免去写XML配置了,十分方便的一项技术~ 学习注解可以更好地理解注解是怎么工作的,看见注解了就可以想到它的... -
Java基础之注解
2020-02-09 19:28:55但如果开发过Servlet,就对@WebServlet不会陌生。 现在的开发都推崇使用注解来进行开发,这样就可以免去写XML配置了,十分方便的一项技术~ 学习注解可以更好地理解注解是怎么工作的,看见注解了就可以想到它的运行... -
【千古难题】关于Myeclipse2015 stable2.0 创建Servlet的问题
2016-06-05 08:03:56我在Myeclipse2015 stable2.0这个版本...2.网上说的,反正用注解也可以,不要纠结太多。(但是我就是想弄清楚,为什么同一款软件,不同工作空间,就会有这样的差别,要怎么样配置,才能解决这个问题?) 谢谢大家!! -
springmvc非注解的方式anddleradapter
2017-11-10 01:21:46搭建框架学习springmvc,用非注解的方式,handdlermapping用的是SimpleUrlHandlerMapping,需要怎么配置handdleradapter xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc=... -
javaEE学习之bug汇总(持续更新03.28)
2019-02-25 16:07:561. servlet中@webServlet注解出错导致404 问题描述:我自己写了一个jsp的表格用post请求访问Servlet,但是不管路径怎么写都不对,一直报404错误 bug原因及解决方法:@WebServlet注解里的name属性对应着&... -
Myeclipse上访问WEB-INF下面的页面,直接用端口号和项目名访问,都配置好了,运行页面出现空白,控制台也没...
2020-05-22 15:42:46-- 自动扫描该包,SpringMVC会将包下用了@controller注解的类注册为Spring的controller --> <!-- 设置默认配置方案 --> <!-- 使用默认的Servlet来响应静态文件 --> <mvc:default-servlet-handler/>... -
SSH 用@webservice发布Restful接口
2021-02-04 11:55:15怎么用人家Spring 的注解呢) 在要发布的接口类中 添加注解调整 大致就概括这么几个步骤 具体过程 (按照上面 步骤 顺序进行描述) web.xml 所需要配置 <!-- 配置CXF框架的核心Servlet -- -
Spring MVC初学者的Hello World入门学习代码实例
2016-10-25 10:04:11我这个人不怎么喜欢注解这个东西,所以我一直没有用过Spring MVC 但是现在小公司面试基本都是用的这个框架啊!没办法,只好硬着头皮去学习罗,大神勿喷,我只是个新手。 开始在web.xml里加入代码,发现没有?这个和... -
通过自动回复机器人学Mybatis基础(一)---慕课网
2018-12-04 23:33:251.页面跳转 ... 这里遇到了哪些问题呢? ...因为怎么都搞不对我干脆直接新建了一个简单的jsp和servlet来测试到底哪里有问题,主要是看配置时已经写跳转时路径该怎么填写,然后用注解的时候又... -
spring boot 2.1.7 重写 RequestMappingHandlerMapping 实现url 自动前缀 出错
2019-12-07 22:40:24最近重写了spring boot 2.1.7的 RequestMappingHandlerMapping 想要实现 用不同注解实现不同的URL前缀但是项目启动后却出现了空指针,经过dedug 发现 在 getHandler这个方法里 ``` if (logger.isTraceEnabled()) ... -
servletWebStageDay08
2018-09-03 21:57:511.web服务器和http协议 web服务器(软件) ? –&gt; 发布自己的项目 就是发布到互联网 ...amp;gt; 限定了请求和响应的格式 ...2.servlet技术: ... 3)怎么用:配置文件方式和注解方式 3.1.配... -
面试笔记:面经-顺丰科技
2019-08-14 16:39:352.1 原生APP与Web APP的比较 三、Java后台 3.1 Spring常用注解 3.2 Redis介绍 3.3 MySQL索引及怎么创建索引 3.4 Spring用了哪些设计模式 3.5 以实际生活例子介绍设计模式 3.6 Servlet介绍 3.7 微服务 3.8 简述软件... -
Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】 Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】 Servlet第三篇【request和response...
-
springboot 监听器的简单示例
2018-01-26 16:57:22在上家公司,有一次我面试别人时问过一个问题“如果你在web项目启动时,就要做一个操作,删除服务器里面某个硬盘的日志,这些日志是之前留下来的,现在重新启动需要把之前的日志清除,你可以怎么做?” 答案是,... -
解决了一晚上都解决不了....No qualifying bean of type 'com.sise.service.LoginService' available
2020-06-01 01:58:16-- 自动扫描该包,包下用了@controller注解的类是控制器 --> <!-- 加载注解驱动 --> <!--视图解析器--> class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 设置...
-
呆逼萌新的小程序。。。。。
-
matlab即将消失的inline小朋友
-
CCW软件基本使用介绍.docx
-
2014年重庆理工大学《RFID原理与应用开发》期末考试试卷 .pdf
-
计算多位数个十百位数并求和.txt
-
连点成线
-
《文件和目录操作命令》
<2.> -
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
-
maven更新慢等问题换镜像
-
Educational Codeforces Round 105 (Rated for Div. 2) D题-Dogeforces(构造+并查集)
-
Unity RUST 逆向安全开发
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
生益电子首次公开发行股票并在科创板上市招股说明书.pdf
-
树莓派使用pwm控制风扇
-
【链表】:输入一个链表,输出该链表中倒数第k个结点。
-
PD协议 协议层
-
MySQL 四类管理日志(详解及高阶配置)
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
【毕设】jsp+基于JB的人事管理系统(源代码+论文)
-
2014年重庆理工大学《移动平台应用与开发》期末考试试卷).pdf