> 文章列表 > servlet

servlet

servlet

依托在tomcat上。由javax.servlet和javax.servlet.http创建

生命周期

init:只会创建一次的init,用于初始化数据或加载配置文件。可以传参conf

service:设置如何调用doGet/doPost/doPut/doDelete等方法。一般不需要重新,自己已经实现

doGet/doPost:处理get/post请求。用response.getWriter().println("<h1>hello world</h1>")输出页面

destroy:只会调用一次,销毁时调用

tomcat-install-directory/webapps/ROOT/WEB-INF下创建web.xml文件。WEB-INF/classes中放类

web.xml

servlet标签声明servlet名字、对应的类

servlet-mapping标签声明servlet名字、拦截的url

filter标签声明过滤器名字、类、参数

filter-mapping声明过滤器名字、拦截的url。web.xml中定义的filter-mapping顺序决定了过滤器调用的顺序

request方法

getParameter("key")获得key的值

getParameterNames获得所有的key

getParameterValues获得一个key里所有的values

getHeaderNames获取请求头...

过滤器

xml中使用<filter>标签,声明name、class、初始化参数。init中使用FilterConfig获取参数

init:初始化,可以获得xml中定义的参数

doFilter:过滤,利用chain.doFilter传回过滤链

destory:销毁过滤器

异常处理

error-page标签。可以重定向到sevlet中

cookie、session

// cookie设置
Cookie name = new Cookie("name",URLEncoder.encode(request.getParameter("name"), "UTF-8")); // 中文转码
response.addCookie( name );
// cookie读取
cookies = request.getCookies();
cookie = cookies[i];
cookie.getName();
URLDecoder.decode(cookie.getValue(), "utf-8");
// session
request.getSession();

重定向/转发

response设置status为301,header里面为网址