1、初始化参数
web.xml里面可以定义两种参数: (1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
(2)servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:
在servlet中可以通过代码分别取用:
package com.wes.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public
class MainServlet
extends HttpServlet
{ public MainServlet() { super(); } public void init() throws ServletException { System.out.println("下面的参数是存放在servletcontext中的"); System.out.println(getServletContext().getInitParameter("context/param"));
System.out.println("下面的两个参数param1是在servlet中存放的");
System.out.println(this.getInitParameter("param1")); } }
第一种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到 第二种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取
2、初始化参数获取
获取参数的方法以及异同
String username=request.getParameter("username"); response.setCharacterEncoding("gb2312"); System.out.println("getServletContext():"+getServletContext()); ServletContext context=getServletConfig().getServletContext(); String num=context.getInitParameter("num");//
================================================================
1、URL中含有两个问号'?? '的处理
http://a.tbcdn.cn/??s/kissy/1.2.0/kissy-min.js,p/global/1.0/global-min.js,p/fp/2012/core.js,p/fp/2012/fp/module.js,p/fp/2012/fp/util.js,p/fp/2012/fp/directpromo.js?t=2012080620120925.js
解决:先以/*做全匹配,再分配给其余servlet进行处理, url的匹配顺序,参考:http://tianya23.blog.51cto.com/1081650/1001568
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpRequest = null;
if (request instanceof HttpServletRequest) {
httpRequest = (HttpServletRequest) request;
} else {
throw new RuntimeException("not http request");
}
String queryString = httpRequest.getQueryString();
if (queryString != null && queryString.startsWith("?")) {
request.getRequestDispatcher("/taobao").forward(httpRequest, response);
} else {
chain.doFilter(httpRequest, response);
}
}
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/1017887,如需转载请自行联系原作者