servlet3.0注解

servlet3.0注解

在servlet3.0之后添加了注解,可以通过注解减少web.xml中的配置代码

@WebServlet

在Servlet3.0中,可以使用 @WebServlet 注解将一个继承于 javax.servlet.http.HttpServlet 的类标

注为可以处理用户请求的 Servlet,无需配置 web.xml。

用注解配置 Servlet
@WebServlet(name = "servlet01",value = "/s01") 

public class Servlet01 extends HttpServlet { 

	private static final long serialVersionUID = 1L; 

	protected void service(HttpServletRequest request, HttpServletResponse 

	response) throws ServletException, IOException { 

	System.out.println("Servlet01..."); 

	}
} 

也可以配置多个 urlPatterns 来指定多个访问路径

@WebServlet(name = "servlet01",urlPatterns = {"/s01","/s001"}) 

public class Servlet01 extends HttpServlet { 

	private static final long serialVersionUID = 1L; 

	protected void service(HttpServletRequest request, HttpServletResponse 

	response) throws ServletException, IOException { 

	System.out.println("Servlet01..."); 

	} 

} 
@WebFilter
用来配置过滤器
@WebFilter(filterName = "filter01",urlPatterns = "/*") 

public class Filter01 implements Filter { 

	public void destroy() { 

	}

	public void doFilter(ServletRequest request, ServletResponse response, 

		FilterChain chain) throws IOException, ServletException { 

		System.out.println("Filter01..."); 

		chain.doFilter(request, response); 

	}

	public void init(FilterConfig fConfig) throws ServletException { 

	} 

} 

注:使用注解时,过滤器链按照类名的字母排序(大部分情况)

@WebListener

Servlet3.0 提供 @WebListener 注解将一个实现了特定监听器接口的类定义为监听器。比如将实现

了 ServletSessionListener 接口的类标注为监听器。

@WebListener 

public class Listener02 implements HttpSessionListener { 

    //监听session的创建
	public void sessionCreated(HttpSessionEvent se) {
	}
	//监听session的销毁
	public void sessionDestroyed(HttpSessionEvent se) { 
	} 

}
@MultipartConfifig

使用注解 @MultipartConfifig 将一个 Servlet 标识为支持文件上传。Servlet3.0 将 multipart/form

data 的 POST 请求封装成 Part,通过 Part 对上传的文件进行操作。

前台

<form action="upload" method="post" enctype="multipart/form-data"> 

	姓名:<input type="text" name="uname"/> 

	文件:<input type="file" name="myfile"/> 

	<input type="submit" value="上传" /> 

</form> 

后台

@WebServlet("/upload") 

@MultipartConfig 

public class UploadServlet extends HttpServlet { 

	private static final long serialVersionUID = 1L; 

	protected void service(HttpServletRequest request, HttpServletResponse 

	response) throws ServletException, IOException { 

	System.out.println("上传文件..."); 

	// 设置编码 

	request.setCharacterEncoding("UTF-8"); 

	// 获取普通表单项参数 

	String uname = request.getParameter("uname"); 

	System.out.println(uname); 

	// 上传文件 

	// 得到part对象 request.getpart(name):name代表的是表单中file元素的name属性值 

	Part part = request.getPart("myfile"); 

	// 得到文件存放的路径 

	String path = request.getServletContext().getRealPath("/"); 

	// 得到文件名String fileName = part.getSubmittedFileName(); 

	// 上传 

	part.write(path + fileName); 

	} 

} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值