文档章节

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

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 553
阅读 5
收藏 0
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的结果进行跳转
· 有一些简单的逻辑判断

 

本文转载自:http://www.cnblogs.com/xqzt/archive/2012/08/17/5637246.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
JSP复习笔记——第11章 JSP 构架和MVC设计模式

11.1 JSP Model I 体系结构 11.2 JSP Model II 体系结构/MVC设计模式 11.3 使用MVC设计模式改写用户注册程序 11.3.1 使用serlvet实现Controller层 11.3.2 使用jsp实现表示层 11.3.3 使用Jav...

暗之幻影
2014/12/18
0
0
JSP 学习总结---学习笔记

什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的对象 HttpServletResponse表示服务端到客户端的...

知止内明
04/18
0
0
(JavaEE-08)JSP九大隐式对象

JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用...

_-Leon-_
2014/07/07
0
0
(JavaEE-09)JSP中的MVC与三层架构

JSP开发模式 SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式 JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用...

_-Leon-_
2014/07/11
0
2
9.java web的发展 javaweb是什么 J2EE发展历史 规范 J2EE是什么 发展背景 组件标准 J2EE好处作用 Servlet 含义 本质 发展 java在web中的发展 servlet工作流程 java 开发web项目发展 javaBean jsp

javaweb 本质上来说就是使用java 语言来解决企业web应用中一系列技术体系与规范; jdk1.2 playground 此版本中把java技术体系拆分为三个方向 J2SE J2EE J2ME 这个大家都知道 其中之一的J2EE,...

noteless
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部