zoukankan      html  css  js  c++  java
  • javaBean与Servlet学习

    1.JavaBean

        JavaBean将java代码单独封装成了一个处理某种业务逻辑的类,可以降低HTML与Java代码的耦合度,并且简化JSP页面,提高Java程序代码的重用性及灵活性。

        JavaBean必须具有公共的无参构造方法,从而可以通过new关键字直接对其实例化。JavaBean中的属性应该设置成private类型,并且为其提供getter/setter方法。在Eclipse中,可以在代码区右击Source->generate getters and setter 进行自动生成。

    以下是在JSP页面中使用JavaBean所使用的标签

    2.Servlet

       当客户端发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让其建立服务器返回给客户端的响应。当启动Web服务器或客户端第一次请求服务时,可以自动装入Servlet,之后Servlet继续运行直到其他客户端发出请求。

       Servlet Api的常用接口主要有:

    •    Servlet接口
    • HttpServlet类
    • HttpServletRequest接口
    • HttpServletResponse接口

        在写Servlet类时,一般完善doPost() 和doGet()方法

        需要在web.xml文件中对Servlet进行配置

    Servlet的应用

    1. 处理表单数据
    2. 页面转发:requestDispatcher.forward(HttpServlet request, HttpServletResponse response)以及requestDispatcher.include(HttpServlet request, HttpServletResponse response)方法
    3. 获得当前页面的绝对路径:ServletContext类的getRealPath()方法

    3.Servlet过滤器

        Servlet过滤器是客户端与目标资源间的中间层组件,用于拦截客户端的请求与相应信息。当Web容器接收到一个客户端请求时,将判断此请求是否与过滤器对象相关联,如果相关联,则将这一请求交给过滤器进行处理。在处理过程中,过滤器可以对请求进行操作,如更改请求中的信息

    数据。在过滤器处理完成之后,再将这一请求交给其他业务进行处理。当所有业务处理完成,需要对客户端进行响应时,容器又将响应交给过滤器进行处理,过滤器完成处理后将响应发送到客户端。

      Filter接口实现了三个方法,反映了Filter的生命周期。其中init()与destroy()方法只会被调用一次,分别在Web程序加载或者卸载的时候调用。而都doFilter()方法每次有客户端请求都会被调用一次,Filter的所有工作也集中在doFilter()方法上。 当一个Filter执行完之后,chain.doFilter(request,response)将request递交给FilterChain中的下一个Filter,如果所有的Filter都走完了则交给Servlet处理。

    下面为判读密码和确认输入的密码是否相同:

     1 package com.study;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.Filter;
     6 import javax.servlet.FilterChain;
     7 import javax.servlet.FilterConfig;
     8 import javax.servlet.ServletException;
     9 import javax.servlet.ServletRequest;
    10 import javax.servlet.ServletResponse;
    11 import javax.servlet.annotation.WebFilter;
    12 import javax.servlet.http.HttpServletRequest;
    13 import javax.servlet.http.HttpServletResponse;
    14 
    15 /**
    16  * Servlet Filter implementation class userFormFilter
    17  */
    18 @WebFilter("/userFormFilter")
    19 public class userFormFilter implements Filter {
    20 
    21     /**
    22      * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
    23      */
    24     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    25         // TODO Auto-generated method stub
    26         // place your code here
    27         HttpServletRequest req=(HttpServletRequest)request;
    28         if(req.getParameter("password").equals(req.getParameter("password1"))){    
    29         }else
    30         {
    31             System.out.println("no");
    32             ((HttpServletResponse) response).sendRedirect("index.jsp");
    33         }
    34         // pass the request along the filter chain
    35         chain.doFilter(request, response);
    36     }
    37 
    38     @Override
    39     public void destroy() {
    40         // TODO Auto-generated method stub
    41         
    42     }
    43 
    44     @Override
    45     public void init(FilterConfig arg0) throws ServletException {
    46         // TODO Auto-generated method stub        
    47     }
    48 
    49 }

    如果相同,则继续,不同则跳转到index.jsp页面

  • 相关阅读:
    python+requests+excel 接口测试
    Pycharm配置git
    ubuntu16.04+ROS安装kinectV1
    ubuntu16.04安装有道词典
    ROS kinetic语音识别
    在Ubuntu16.04中python环境下实现tab键补全
    ros kinetic安装rbx1
    ubuntu14.04安装opencv3.1
    ubuntu16.04SSH无法连接
    VC6中函数点go to definition报告the symbol XXX is undefined
  • 原文地址:https://www.cnblogs.com/galway/p/4634188.html
Copyright © 2011-2022 走看看