⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 61.html

📁 写给JSP初级程序员的书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
      java.io.IOException(e.getMessage());<BR>}<BR>}<BR>/**<BR>* Insert the 
      method's description here.<BR>* Creation date: (2001-2-4 20:34:37)<BR>* 
      @param urlenc java.lang.String<BR>*/<BR>private void parse(String 
      urlenc,String encoding) throws java.io.IOException{<BR>if (urlenc == null) 
      return;<BR>StringTokenizer tok = new 
      StringTokenizer(urlenc,"&amp;");<BR>try{<BR>while 
      (tok.hasMoreTokens()){<BR>String aPair = tok.nextToken();<BR>int pos = 
      aPair.indexOf("=");<BR>String name = null;<BR>String value = 
      null;<BR>if(pos != -1){<BR>name = 
      decode(aPair.substring(0,pos),encoding);<BR>value = 
      decode(aPair.substring(pos+1),encoding);<BR>}else{<BR>name = 
      aPair;<BR>value = "";<BR>}<BR>if(pairs.containsKey(name)){<BR>ArrayList 
      values = 
      (ArrayList)pairs.get(name);<BR>values.add(value);<BR>}else{<BR>ArrayList 
      values = new 
      ArrayList();<BR>values.add(value);<BR>pairs.put(name,values);<BR>}<BR>}<BR>}catch(Exception 
      e){<BR>throw new 
      java.io.IOException(e.getMessage());<BR>}<BR>}<BR>}<BR>这个类的功能就是读取并保存form提交的信息,并实现常用的getParameter方法。<BR>package 
      com.hto.servlet;</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>import java.io.*;<BR>import 
      javax.servlet.*;<BR>import javax.servlet.http.*;<BR>/**<BR>* Insert the 
      type's description here.<BR>* Creation date: (2001-2-5 8:28:20)<BR>* 
      @author: 钱卫春<BR>*/<BR>public class UtfBaseServlet extends HttpServlet 
      {<BR>public static final String PARAMS_ATTR_NAME = 
      "PARAMS_ATTR_NAME";<BR>/**<BR>* Process incoming HTTP GET requests <BR>* 
      <BR>* @param request Object that encapsulates the request to the servlet 
      <BR>* @param response Object that encapsulates the response from the 
      servlet<BR>*/<BR>public void doGet(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException 
      {</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>performTask(request, 
      response);</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>}<BR>/**<BR>* Process incoming 
      HTTP POST requests <BR>* <BR>* @param request Object that encapsulates the 
      request to the servlet <BR>* @param response Object that encapsulates the 
      response from the servlet<BR>*/<BR>public void doPost(HttpServletRequest 
      request, HttpServletResponse response) throws ServletException, 
      IOException {</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>performTask(request, 
      response);</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>}<BR>/**<BR>* Insert the method's 
      description here.<BR>* Creation date: (2001-2-5 8:52:43)<BR>* @return 
      int<BR>* @param request javax.servlet.http.HttpServletRequest<BR>* @param 
      name java.lang.String<BR>* @param required boolean<BR>* @param defValue 
      int<BR>*/<BR>public static java.sql.Date 
      getDateParameter(HttpServletRequest request, String name, boolean 
      required, java.sql.Date defValue) throws ServletException{<BR>String value 
      = getParameter(request,name,required,String.valueOf(defValue));<BR>return 
      java.sql.Date.valueOf(value);<BR>}<BR>/**<BR>* Insert the method's 
      description here.<BR>* Creation date: (2001-2-5 8:52:43)<BR>* @return 
      int<BR>* @param request javax.servlet.http.HttpServletRequest<BR>* @param 
      name java.lang.String<BR>* @param required boolean<BR>* @param defValue 
      int<BR>*/<BR>public static double getDoubleParameter(HttpServletRequest 
      request, String name, boolean required, double defValue) throws 
      ServletException{<BR>String value = 
      getParameter(request,name,required,String.valueOf(defValue));<BR>return 
      Double.parseDouble(value);<BR>}<BR>/**<BR>* Insert the method's 
      description here.<BR>* Creation date: (2001-2-5 8:52:43)<BR>* @return 
      int<BR>* @param request javax.servlet.http.HttpServletRequest<BR>* @param 
      name java.lang.String<BR>* @param required boolean<BR>* @param defValue 
      int<BR>*/<BR>public static float getFloatParameter(HttpServletRequest 
      request, String name, boolean required, float defValue) throws 
      ServletException{<BR>String value = 
      getParameter(request,name,required,String.valueOf(defValue));<BR>return 
      Float.parseFloat(value);<BR>}<BR>/**<BR>* Insert the method's description 
      here.<BR>* Creation date: (2001-2-5 8:52:43)<BR>* @return int<BR>* @param 
      request javax.servlet.http.HttpServletRequest<BR>* @param name 
      java.lang.String<BR>* @param required boolean<BR>* @param defValue 
      int<BR>*/<BR>public static int getIntParameter(HttpServletRequest request, 
      String name, boolean required, int defValue) throws 
      ServletException{<BR>String value = 
      getParameter(request,name,required,String.valueOf(defValue));<BR>return 
      Integer.parseInt(value);<BR>}<BR>/**<BR>* Insert the method's description 
      here.<BR>* Creation date: (2001-2-5 8:43:36)<BR>* @return 
      java.lang.String<BR>* @param request 
      javax.servlet.http.HttpServletRequest<BR>* @param name 
      java.lang.String<BR>* @param required boolean<BR>* @param defValue 
      java.lang.String<BR>*/<BR>public static String 
      getParameter(HttpServletRequest request, String name, boolean required, 
      String defValue) throws 
      ServletException{<BR>if(request.getAttribute(UtfBaseServlet.PARAMS_ATTR_NAME) 
      != null) {<BR>UTF8ParameterReader params = 
      (UTF8ParameterReader)request.getAttribute(UtfBaseServlet.PARAMS_ATTR_NAME);<BR>if 
      (params.getParameter(name) != null) return 
      params.getParameter(name);<BR>if (required) throw new 
      ServletException("The Parameter "+name+" Required but not 
      provided!");<BR>else return defValue;<BR>}else{<BR>if 
      (request.getParameter(name) != null) return 
      request.getParameter(name);<BR>if (required) throw new 
      ServletException("The Parameter "+name+" Required but not 
      provided!");<BR>else return defValue;<BR>}<BR>}<BR>/**<BR>* Returns the 
      servlet info string.<BR>*/<BR>public String getServletInfo() 
      {</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>return 
      super.getServletInfo();</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>}<BR>/**<BR>* Insert the method's 
      description here.<BR>* Creation date: (2001-2-5 8:52:43)<BR>* @return 
      int<BR>* @param request javax.servlet.http.HttpServletRequest<BR>* @param 
      name java.lang.String<BR>* @param required boolean<BR>* @param defValue 
      int<BR>*/<BR>public static java.sql.Timestamp 
      getTimestampParameter(HttpServletRequest request, String name, boolean 
      required, java.sql.Timestamp defValue) throws ServletException{<BR>String 
      value = 
      getParameter(request,name,required,String.valueOf(defValue));<BR>return 
      java.sql.Timestamp.valueOf(value);<BR>}<BR>/**<BR>* Initializes the 
      servlet.<BR>*/<BR>public void init() {<BR>// insert code to initialize the 
      servlet here</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>}<BR>/**<BR>* Process incoming 
      requests for information<BR>* <BR>* @param request Object that 
      encapsulates the request to the servlet <BR>* @param response Object that 
      encapsulates the response from the servlet<BR>*/<BR>public void 
      performTask(HttpServletRequest request, HttpServletResponse response) 
      {</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>try</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>{<BR>// Insert user code from 
      here.</FONT></SPAN></P>
      <P><SPAN class=line><FONT color=#386490>}<BR>catch(Throwable 
      theException)<BR>{<BR>// uncomment the following line when unexpected 
      exceptions<BR>// are occuring to aid in debugging the 
      problem.<BR>//theException.printStackTrace();<BR>}<BR>}<BR>/**<BR>* Insert 
      the method's description here.<BR>* Creation date: (2001-2-5 8:31:54)<BR>* 
      @param request javax.servlet.ServletRequest<BR>* @param response 
      javax.servlet.ServletResponse<BR>* @exception 
      javax.servlet.ServletException The exception description.<BR>* @exception 
      java.io.IOException The exception description.<BR>*/<BR>public void 
      service(ServletRequest request, ServletResponse response) throws 
      javax.servlet.ServletException, java.io.IOException {<BR>String content = 
      request.getContentType();<BR>if(content == null || content != null 
      &amp;&amp; 
      content.toLowerCase().startsWith("application/x-www-form-urlencoded"))<BR>request.setAttribute(PARAMS_ATTR_NAME,new 
      UTF8ParameterReader((HttpServletRequest)request));<BR>super.service(request,response);<BR>}<BR>}<BR>  这个就是Servlet基类,它覆盖了父类的service方法,在调用父类service前,创建了UTF8ParameterReader对象,其中保存了form中提交的信息。然后把这个对象作为一个Attribute保存到Request对象中。然后照样调用父类的service方法。<BR>  对于继承这个类的Servlet,要注意的是,"标准"getParameter在也不能读到post的数据,因为在这之前这个类中已经从ServletInputStream中读出了数据了。所以应该使用该类中提供的getParameter方法。<BR>  剩下的就是输出问题了,我们要把输出的信息,转为UTF8的二进制流输出。只要我们设置Content-Type时指定charset为UTF8,然后使用PrintWriter输出,那么这些转换是自动进行的,Servlet中这样设置:<BR>  response.setContentType("text/html;charset=UTF8");<BR>Jsp中这样设置:<BR>  &lt;%@ 
      page 
      contentType="text/html;charset=UTF8"%&gt;<BR>  这样就可以保证输出是UTF8流,客户端能否显示,就看客户端的了。<BR>  对于multipart/form-data的form提交的内容,我也提供一个类用来处理,在这个类的构造子中可以指定页面使用的charset,默认还是UTF-8,限于篇幅不贴出源码.
        </td>
      </tr>
    </td>
  </tr>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -