您的位置:首页 > 编程语言 > Java开发

jsp---->JSP + Servlet + JavaBean开发模式

2012-08-17 09:55 603 查看
[align=center]JSP + Servlet + JavaBean[/align]
分析:
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的结果进行跳转

· 有一些简单的逻辑判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息