0Tz中国设计秀
return Double.parseDouble(value);
0Tz中国设计秀
}
0Tz中国设计秀
/**
0Tz中国设计秀
* Insert the method's description here.
0Tz中国设计秀
* Creation date: (2001-2-5 8:52:43)
0Tz中国设计秀
* @return int
0Tz中国设计秀
* @param request javax.servlet.http.HttpServletRequest
0Tz中国设计秀
* @param name java.lang.String
0Tz中国设计秀
* @param required boolean
0Tz中国设计秀
* @param defValue int
0Tz中国设计秀
*/
0Tz中国设计秀
public static float getFloatParameter(HttpServletRequest request, String name, boolean required, float defValue) throws ServletException{
0Tz中国设计秀
String value = getParameter(request,name,required,String.valueOf(defValue));
0Tz中国设计秀
return Float.parseFloat(value);
0Tz中国设计秀
}
0Tz中国设计秀
/**
0Tz中国设计秀
* Insert the method's description here.
0Tz中国设计秀
* Creation date: (2001-2-5 8:52:43)
0Tz中国设计秀
* @return int
0Tz中国设计秀
* @param request javax.servlet.http.HttpServletRequest
0Tz中国设计秀
* @param name java.lang.String
0Tz中国设计秀
* @param required boolean
0Tz中国设计秀
* @param defValue int
0Tz中国设计秀
*/
0Tz中国设计秀
public static int getIntParameter(HttpServletRequest request, String name, boolean required, int defValue) throws ServletException{
0Tz中国设计秀
String value = getParameter(request,name,required,String.valueOf(defValue));
0Tz中国设计秀
return Integer.parseInt(value);
0Tz中国设计秀
}
0Tz中国设计秀
/**
0Tz中国设计秀
* Insert the method's description here.
0Tz中国设计秀
* Creation date: (2001-2-5 8:43:36)
0Tz中国设计秀
* @return java.lang.String
0Tz中国设计秀
* @param request javax.servlet.http.HttpServletRequest
0Tz中国设计秀
* @param name java.lang.String
0Tz中国设计秀
* @param required boolean
0Tz中国设计秀
* @param defValue java.lang.String
0Tz中国设计秀
*/
0Tz中国设计秀
public static String getParameter(HttpServletRequest request, String name, boolean required, String defValue) throws ServletException{
0Tz中国设计秀
if(request.getAttribute(UtfBaseServlet.PARAMS_ATTR_NAME) != null) {
0Tz中国设计秀
UTF8ParameterReader params = (UTF8ParameterReader)request.getAttribute(UtfBaseServlet.PARAMS_ATTR_NAME);
0Tz中国设计秀
if (params.getParameter(name) != null) return params.getParameter(name);
0Tz中国设计秀
if (required) throw new ServletException("The Parameter "+name+" Required but not provided!");
0Tz中国设计秀
else return defValue;
0Tz中国设计秀
}else{
0Tz中国设计秀
if (request.getParameter(name) != null) return request.getParameter(name);
0Tz中国设计秀
if (required) throw new ServletException("The Parameter "+name+" Required but not provided!");
0Tz中国设计秀
else return defValue;
0Tz中国设计秀
}
0Tz中国设计秀
}
0Tz中国设计秀
/**
0Tz中国设计秀
* Returns the servlet info string.
0Tz中国设计秀
*/
0Tz中国设计秀
public String getServletInfo() {
0Tz中国设计秀
return super.getServletInfo();0Tz中国设计秀
}0Tz中国设计秀
/**0Tz中国设计秀
* Insert the method's description here.0Tz中国设计秀
* Creation date: (2001-2-5 8:52:43)0Tz中国设计秀
* @return int0Tz中国设计秀
* @param request javax.servlet.http.HttpServletRequest0Tz中国设计秀
* @param name java.lang.String0Tz中国设计秀
* @param required boolean0Tz中国设计秀
* @param defValue int0Tz中国设计秀
*/0Tz中国设计秀
public static java.sql.Timestamp getTimestampParameter(HttpServletRequest request, String name, boolean required, java.sql.Timestamp defValue) throws ServletException{0Tz中国设计秀
String value = getParameter(request,name,required,String.valueOf(defValue));0Tz中国设计秀
return java.sql.Timestamp.valueOf(value);0Tz中国设计秀
}0Tz中国设计秀
/**0Tz中国设计秀
* Initializes the servlet.0Tz中国设计秀
*/0Tz中国设计秀
public void init() {0Tz中国设计秀
// insert code to initialize the servlet here0Tz中国设计秀
}0Tz中国设计秀
/**0Tz中国设计秀
* Process incoming requests for information0Tz中国设计秀
* 0Tz中国设计秀
* @param request Object that encapsulates the request to the servlet 0Tz中国设计秀
* @param response Object that encapsulates the response from the servlet0Tz中国设计秀
*/0Tz中国设计秀
public void performTask(HttpServletRequest request, HttpServletResponse response) {0Tz中国设计秀
try0Tz中国设计秀
{0Tz中国设计秀
// Insert user code from here.0Tz中国设计秀
}0Tz中国设计秀
catch(Throwable theException)0Tz中国设计秀
{0Tz中国设计秀
// uncomment the following line when unexpected exceptions0Tz中国设计秀
// are occuring to aid in debugging the problem.0Tz中国设计秀
//theException.printStackTrace();0Tz中国设计秀
}0Tz中国设计秀
}0Tz中国设计秀
/**0Tz中国设计秀
* Insert the method's description here.0Tz中国设计秀
* Creation date: (2001-2-5 8:31:54)0Tz中国设计秀
* @param request javax.servlet.ServletRequest0Tz中国设计秀
* @param response javax.servlet.ServletResponse0Tz中国设计秀
* @exception javax.servlet.ServletException The exception description.0Tz中国设计秀
* @exception java.io.IOException The exception description.0Tz中国设计秀
*/0Tz中国设计秀
public void service(ServletRequest request, ServletResponse response) throws javax.servlet.ServletException, java.io.IOException {0Tz中国设计秀
String content = request.getContentType();0Tz中国设计秀
if(content == null || content != null && content.toLowerCase().startsWith("application/x-www-form-urlencoded"))0Tz中国设计秀
request.setAttribute(PARAMS_ATTR_NAME,new UTF8ParameterReader((HttpServletRequest)request));0Tz中国设计秀
super.service(request,response);0Tz中国设计秀
}0Tz中国设计秀
}0Tz中国设计秀
这个就是Servlet基类,它覆盖了父类的service方法,在调用父类service前,创建了UTF8ParameterReader对象,其中保存了form中提交的信息。然后把这个对象作为一个Attribute保存到Request对象中。然后照样调用父类的service方法。0Tz中国设计秀
对于继承这个类的Servlet,要注意的是,"标准"getParameter在也不能读到post的数据,因为在这之前这个类中已经从ServletInputStream中读出了数据了。所以应该使用该类中提供的getParameter方法。0Tz中国设计秀
剩下的就是输出问题了,我们要把输出的信息,转为UTF8的二进制流输出。只要我们设置Content-Type时指定charset为UTF8,然后使用PrintWriter输出,那么这些转换是自动进行的,Servlet中这样设置:0Tz中国设计秀
response.setContentType("text/html;charset=UTF8");0Tz中国设计秀
Jsp中这样设置:0Tz中国设计秀
<%@ page contentType="text/html;charset=UTF8"%>0Tz中国设计秀
这样就可以保证输出是UTF8流,客户端能否显示,就看客户端的了。0Tz中国设计秀
0Tz中国设计秀