zoukankan      html  css  js  c++  java
  • jsp>JSP + Servlet + JavaBean开发模式

    JSP + Servlet + JavaBean
    分析:
    JSP 优点:开发前台界面方便,做UI 开发容易
    Servlet 优点:是JAVA 程序,安全性高,性能也高
    Servlet 缺点:显示不方便
    Servlet 也可以像JSP 一样接收用户的请求参数
    JavaBean 优点:可重复调用,需要接收用户的请求参数,进行相应的处理                                                                                                                                                                                        
    问题?
    JSP 跳转到Servlet 可以吗?可以,通过表单提交或超链接
    Servlet 跳转到JSP 可以吗?可以,可以通过response 对象
    response.sendRedirect():客户端跳转,请求不保存
    现在从 Servlet 中要传递的值只使用一次,如果把此值存放在session 范围之中,则此内容只要用户一直与服务器保持连接,则此块内存空间要一直被占用,那么性能会怎么样?性能会很低。
    解决方法:RequestDispatcher 接口,是用于进行服务器端跳转的接口
    此接口要求使用 HttpServletRequest 进行实例化
    RequestDispatcher rd = null ;
    rd = req.getRequestDispatcher("mvcdemo.jsp") ;
    rd.forward(req,resp) ;
                                                                                                                                                                                            
    MVCServlet.java
    package cn.mldn.lxh.servlet ;
    
    import java.io.* ;
    import javax.servlet.* ;
    import javax.servlet.http.* ;
    import cn.mldn.lxh.bean.MVCCheck ;
    
    public class MVCServlet extends HttpServlet
    {
    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    {
      this.doPost(req,resp) ;
    }
    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    {
      String name = req.getParameter("uname") ;  //表单提交的参数
      MVCCheck mc = new MVCCheck() ;             //调用javabean进行处理,
      // 将请求内容设置到mc对象之中
      mc.setName(name) ;
      String path = null ;
      if(mc.isValidate())
      {
       // 保存名字在request范围之中
       req.setAttribute("name",mc.getName()) ;
       path = "mvc_success.jsp" ;
      }
      else
      {
       path = "mvc_failure.jsp" ;
      }
    // 根据javabean的结果进行跳转 
      req.getRequestDispatcher(path).forward(req,resp) ;    
    }
    };
    /*
      <servlet>
    < servlet-name>mvc</servlet-name>
    < servlet-class>cn.servlet.MVCServlet</servlet-class>
      </servlet>
      <servlet-mapping>
    < servlet-name>mvc</servlet-name>
    < url-pattern>/mvcdemo.mldn</url-pattern>
      </servlet-mapping>
    */
    MVCCheck.java
    package cn.bean ;
    
    public class MVCCheck
    {
    	private String name ;
    
    	public void setName(String name)
    	{
    		this.name = name ;
    	}
    	public String getName()
    	{
    		return this.name ;
    	}
    	// 验证
    	public boolean isValidate()
    	{
    		if(this.name==null||"".equals(this.name))
    		{
    			return false ;
    		}
    		else
    		{
    			return true ;
    		}
    	}
    };
    mvc_success.jsp
    <h2>欢迎:<%=request.getAttribute("name")%>光临!!!</h2>
    Servlet 跳转到JSP 的服务器端跳转指令是:req.getRequestDispatcher("mvcdemo.jsp").forward(req,resp) ;
    通过以上代码可以发现:
    使用 MVC 开发程序,代码稍微复杂
    JSP 与JavaBean 之间没有什么特别明显的直接关系
    而 Servlet 根据JavaBean 返回的内容进行跳转

    Servlet 中最好只有以下几种代码:
    · 接收参数
    · 调用 JavaBean
    · 根据结果javaBean的结果进行跳转
    · 有一些简单的逻辑判断
  • 相关阅读:
    Beta冲刺——day2
    Beta冲刺——day1
    OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图
    FIRST集和FOLLOW集
    现代计算机接口实验 (五)0809实验
    现代计算机接口实验 (四)0832实验
    现代计算机接口实验 (二)8253实验
    现代计算机接口实验 (三)8255实验
    现代计算机接口实验 (一)熟悉环境
    可编程控制器实训
  • 原文地址:https://www.cnblogs.com/xqzt/p/5637246.html
Copyright © 2011-2022 走看看