servlet3.0的学习(一)

来源:互联网 发布:淘宝极速退款卖家拒签 编辑:程序博客网 时间:2024/06/10 17:50
注解的使用 
开发工具:NetBeans6.8 
目前j2ee6的开发工具只能是NetBeans,应用服务器为glassfish和jboss6.0 
在介绍之前先说一下NetBeans常用的快捷键! 
ctrl+/ : 注释掉 (选中多行,可以多行注释) 
ctrl+\ : 代码提示 
ctrl+e : 删除行 
当然也可以通过工具-选项-快捷键映射来修改! 

前言:servlet3.0加强了注解支持,注解的引入,使部署描述符web.xml文件成为可选的。在这完全不用配置web.xml! 

TestServlet.java 
Java代码  收藏代码
  1. import java.io.IOException;  
  2. import java.io.PrintWriter;  
  3.   
  4. import javax.servlet.ServletConfig;  
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.annotation.WebInitParam;  
  7. import javax.servlet.annotation.WebServlet;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11.   
  12. @WebServlet(name="mytest",  
  13.         urlPatterns={"/test"},  
  14.         initParams={ @WebInitParam(name="message", value="my servlet"),@WebInitParam(name="message2", value="my servlet2")}  
  15. )  
  16. public class TestServlet extends HttpServlet {  
  17.     private String listenerMessage = null;  
  18.   
  19.     @Override  
  20.     public void init(ServletConfig config) throws ServletException {  
  21.         super.init(config);  
  22.         listenerMessage = (String)config.getServletContext().getAttribute("listenerMessage");  
  23.     }  
  24.   
  25.     @Override  
  26.     protected void service(HttpServletRequest req, HttpServletResponse res)  
  27.             throws IOException, ServletException {  
  28.   
  29.         PrintWriter writer = res.getWriter();  
  30.         writer.write("Hello, " + getInitParameter("message") + ", ");  
  31.         writer.write( getInitParameter("message2") + ", ");  
  32.         writer.write(req.getAttribute("filterMessage") + ", ");  
  33.         writer.write(listenerMessage + ".\n");  
  34.     }  
  35. }  


说明: 
WebServlet:指定servlet,必须要继承HttpServlet 
urlPatterns:指定servlet的路径 
initParams:指定初始化参数,可以多个 
WebInitParam:初始化参数,一个参数一个WebInitParam 

TestFilter.java 
Java代码  收藏代码
  1. import java.io.IOException;  
  2.   
  3. import javax.servlet.Filter;  
  4. import javax.servlet.FilterChain;  
  5. import javax.servlet.FilterConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.ServletRequest;  
  8. import javax.servlet.ServletResponse;  
  9. import javax.servlet.annotation.WebFilter;  
  10. import javax.servlet.annotation.WebInitParam;  
  11.   
  12.   
  13. @WebFilter(urlPatterns={"/*"}, initParams={ @WebInitParam(name="mesg", value="my filter") })  
  14. public class TestFilter implements Filter {  
  15.     String mesg = null;  
  16.   
  17.     public void init(FilterConfig filterConfig) throws ServletException {  
  18.         mesg = filterConfig.getInitParameter("mesg");  
  19.     }     
  20.   
  21.     public void doFilter(ServletRequest req, ServletResponse res,  
  22.             FilterChain chain) throws IOException, ServletException {  
  23.   
  24.         req.setAttribute("filterMessage", mesg);  
  25.         chain.doFilter(req, res);  
  26.     }  
  27.   
  28.     public void destroy() {  
  29.     }  
  30. }  

说明: 
WebFilter:指定拦截器,必须实现Filter 
urlPatterns:指定拦截器的范围 

TestServletContextListener.java 
Java代码  收藏代码
  1. import javax.servlet.ServletContext;  
  2. import javax.servlet.ServletContextListener;  
  3. import javax.servlet.ServletContextEvent;  
  4.   
  5.   
  6. @javax.servlet.annotation.WebListener  
  7. public class TestServletContextListener implements ServletContextListener {  
  8.     public void contextInitialized(ServletContextEvent sce) {  
  9.         ServletContext context = sce.getServletContext();  
  10.         context.setAttribute("listenerMessage""my listener");  
  11.     }     
  12.   
  13.     public void contextDestroyed(ServletContextEvent sce) {  
  14.     }  
  15. }  

说明: 
javax.servlet.annotation.WebListener:指定监听器,必须实现ServletContextListener
原创粉丝点击