精华内容
下载资源
问答
  • servlet中@webServlet注解出错导致404

    千次阅读 2019-04-17 16:54:31
    servlet中@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注解,发现验证码怎么也刷新不了,调试之后发现根本没有进入验证码生成的方法中去。这是我想肯定是注解或者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>
    然后取消生成验证码的注解
    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());
     
    	}
    
    }
    
    然后我发现可以,生成验证码。然后我发现tomcat6需要用这个,而注解这个方式需要用tomcat7.


    注释web.xml文件中的servlet配置,然后取消@Webservlet注解的注释。发现可以完美生成验证码。

    展开全文
  • 需要的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.傻了吧.

    展开全文
  • 1.现在各种培训机构或是网络教程使用的IDE都是IDEA,感觉都没人Eclipse了。...主要原因就是:Dynamic Web Module版本太低,不能使用servlet注解.这里的版本改到3.0以上就可以使用了。更多的消息可以点击这一栏查
  • 出自:Java3y ...但如果开发过Servlet,就对@WebServlet不会陌生。现在的开发都推崇使用注解来进行开发,这样就可以免去写XML配置了,十分方便的一项技术~学习注解可...
  • 但如果开发过Servlet,就对@WebServlet不会陌生。现在的开发都推崇使用注解来进行开发,这样就可以免去写XML配置了,十分方便的一项技术~学习注解可以更好地理解注解怎么工作的,看见注解了就可以想到它的运行...
  • 在上一篇中我们可以使用注解注册自己编写的组件,但是对于第三方的组件,没有了web.xml,我们不能直接到人家类上去贴个注解,这时候该怎么呢。就得使用servlet3.0的 Sharedlibraries(共享库) / runtimes ...
  • @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这个版本...2.网上说的,反正用注解也可以,不要纠结太多。(但是我就是想弄清楚,为什么同一款软件,不同工作空间,就会有这样的差别,要怎么样配置,才能解决这个问题?) 谢谢大家!!
  • 搭建框架学习springmvc,注解的方式,handdlermapping的是SimpleUrlHandlerMapping,需要怎么配置handdleradapter xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc=...
  • 1. servlet中@webServlet注解出错导致404 问题描述:我自己写了一个jsp的表格post请求访问Servlet,但是不管路径怎么写都不对,一直报404错误 bug原因及解决方法:@WebServlet注解里的name属性对应着&...
  • -- 自动扫描该包,SpringMVC会将包下了@controller注解的类注册为Spring的controller --> <!-- 设置默认配置方案 --> <!-- 使用默认的Servlet来响应静态文件 --> <mvc:default-servlet-handler/>...
  • 怎么用人家Spring 的注解呢) 在要发布的接口类中 添加注解调整 大致就概括这么几个步骤 具体过程 (按照上面 步骤 顺序进行描述) web.xml 所需要配置 <!-- 配置CXF框架的核心Servlet --
  • 我这个人不怎么喜欢注解这个东西,所以我一直没有过Spring MVC 但是现在小公司面试基本都是的这个框架啊!没办法,只好硬着头皮去学习罗,大神勿喷,我只是个新手。 开始在web.xml里加入代码,发现没有?这个和...
  • 1.页面跳转 ... 这里遇到了哪些问题呢? ...因为怎么都搞不对我干脆直接新建了一个简单的jsp和servlet来测试到底哪里有问题,主要是看配置时已经写跳转时路径该怎么填写,然后用注解的时候又...
  • 最近重写了spring boot 2.1.7的 RequestMappingHandlerMapping 想要实现 不同注解实现不同的URL前缀但是项目启动后却出现了空指针,经过dedug 发现 在 getHandler这个方法里 ``` if (logger.isTraceEnabled()) ...
  • servletWebStageDay08

    2018-09-03 21:57:51
    1.web服务器和http协议 web服务器(软件) ? –&amp;gt; 发布自己的项目 就是发布到互联网 ...amp;gt; 限定了请求和响应的格式 ...2.servlet技术: ... 3)怎么用:配置文件方式和注解方式 3.1.配...
  • 面试笔记:面经-顺丰科技

    千次阅读 2019-08-14 16:39:35
    2.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项目启动时,就要做一个操作,删除服务器里面某个硬盘的日志,这些日志是之前留下来的,现在重新启动需要把之前的日志清除,你可以怎么做?” 答案是,...
  • -- 自动扫描该包,包下了@controller注解的类是控制器 --> <!-- 加载注解驱动 --> <!--视图解析器--> class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 设置...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

webservlet注解怎么用