zoukankan      html  css  js  c++  java
  • JSP入门3 Servlet

    需要继承类HttpServlet

    服务器在获得请求的时候会先根据jsp页面生成一个java文件,然后使用jdk的编译器将此文件编译,最后运行得到的class文件处理用户的请求返回响应。如果再有请求访问这jsp页面,服务器会先检查jsp文件是否被修改过,如果被修改过,则重新生成java重新编译,如果没有,就直接运行上次得到的class。

    因为jsp虽然比servlet灵活,却容易出错,你找不到良好的方式来测试jsp中代码,尤其在需要进行复杂的业务逻辑时,这一点儿很可能成为致命伤。所以一般都不允许在jsp里出现业务操作有关的代码

    servlet是一个java类,需要编译之后才能使用,虽然显示页面的时候会让人头疼,不过在进行业务操作和数据运算方面就比jsp稳健太多了

    因此我们就要结合两者的优点,在servlet进行业务操作和请求转发,jsp全面负责页面显示,这也是目前公司企业里常用的开发方式。

    web.xml配置

    servlet的配置

    1.对应类

    2.对应地址

    <servlet> 
        <servlet-name>ContactServlet</servlet-name>  

       <servlet-class>anni.ContactServlet</servlet-class> </servlet>  
    <servlet-mapping> 
        <servlet-name>ContactServlet</servlet-name>  

       <url-pattern>/contact.do</url-pattern> 

    </servlet-mapping>

    继承HttpServlet,不过这次实现两个方法doGet()和doPost()分别处理http的GET和POST方式的请求

    /** 
     * 处理get请求.  */ 
    public void doGet(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {  
        this.process(request, response); }  
    /** 
     * 处理post请求  */ 
    public void doPost(HttpServletRequest request,HttpServletResponse response)     throws ServletException, IOException {  
        this.process(request, response);}

    /** 
     * 处理请求.  */ 
    public void process(HttpServletRequest request,HttpServletResponse response)     throws ServletException, IOException {  
        request.setCharacterEncoding("gb2312");  
        String method = request.getParameter("method");    

        if (method == null) {         method = "list";     }

    try {          // 分发请求 

            if ("list".equals(method)) {

    this.list(request, response);         }

          else if ("save".equals(method)) {             this.save(request, response);         }

          else if ("edit".equals(method)) {             this.edit(request, response);         } 

          else if ("update".equals(method)) {             this.update(request, response);         } 

          else if ("remove".equals(method)) {             this.remove(request, response);         } 
        } catch(Exception ex) {         System.err.println(ex)   }

    }

    默认的索引页面index.jsp中,将list.jsp改成
    contact.do?method=list,把请求转发到contact.do顺便再带上操作参数。

    public void list(HttpServletRequest request,HttpServletResponse response)     throws Exception {  
        List list = contactDao.getAll();     request.setAttribute("list", list);  
        request.getRequestDispatcher("/list.jsp").forward(request, response); }

  • 相关阅读:
    交友app
    xcode5修改APP名字
    xcode5下取消ARC
    五语言学习系列 C,C++,Objective-C,Java,C# (一)历史
    IT领域的罗马帝国——微软公司
    IBOutlet loadView UIButton的subview数量 UIWebView
    UIColor用自定义颜色,TableView去掉背景色
    ORA-00937: not a single-group group function
    向一张表批量插入值
    lsnrctl start 报错
  • 原文地址:https://www.cnblogs.com/Dhouse/p/3384305.html
Copyright © 2011-2022 走看看