<%@ page contentType="text/html; charset=gb2312"%> JSP+JavaBean+Servlet工作原理实例讲解
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
JSP+JavaBean+Servlet工作原理实例讲解
     发布者: 发布时间:2007-09-23

JSP+JavaBean两层结构的开发应该是比较熟悉的,也比较好理解。

但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应

的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet

引擎来执行Servlet,把调用JavaBean的结果嵌入到页面中返回给用户的浏览器。

JSP+JavaBean+Servlet三层结构的实质是多了一个Controller:Servlet来分发客户端浏览器的请求。如

果把起控制器作用的Servlet的作用理解为对客户端的请求进行预处理对理解Servlet将有很大的帮助。通

过web.xml配置文件可以找到用户请求和特定的Servlet的对应关系,每个Servlet都有一个特定的Servlet

对象与之对应,所以说处理用户请求的就是一个继承自HttpServlet的Servlet对象。


<!-- JSPC servlet mappings start -->
<servlet>
<servlet-name>ms1</servlet-name>
<servlet-class>news.FirstAction</servlet-class>
</servlet>

<servlet>
<servlet-name>ms2</servlet-name>
<servlet-class>news.DetailAction</servlet-class>
</servlet>

<!-- JSPC servlet mappings end -->
<servlet-mapping>
<servlet-name>ms1</servlet-name>
<url-pattern>/newsmain</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>ms2</servlet-name>
<url-pattern>/newsDetail</url-pattern>
</servlet-mapping>



如上面所示的摘自web.xml的一段配置servlet,第一部分主要用来配置Servlet与具体的Servlet对象关联

,第二部分主要用来配置请求由哪个Servlet处理,Servlet名字的关联,处理请求就与具体Servlet处理

对象关联起来,比如说,客户端浏览器发来/newsmain的请求,它由ms1 servlet进行处理,通过ms1就能

找到相对应的serlet对象news.FirstAction,即/newsmain->ms1->news.FirstAction,这也就是配置

文件的意义所在。到现在懂得了用户/newsmain请求会被news.FirstAction类的对象进行处理,所以说,

要看懂程序就要看懂FirstAction的作用是什么就行了。比如说下面是FirstAction的一个实现。


public final class FirstAction extends HttpServlet {
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

DB db = new DB();
HttpSession session = req.getSession();

try {
session.setAttribute(Constants.NEWS_LIST_KEY, News
.SearchNewsTitle(db));
} catch (Exception e) {
e.printStackTrace();
}

db.close();
String target = "/P43_News/newsMain.jsp";
resp.sendRedirect(target);
}

}



通过这个实现可以看到,当服务器收到客户端请求执行News.SearchNewsTitle(db)的操作,然后把返回值

通过session.setAttribute放到session里,然后通过resp.sendRedirect(target)间接转移到

newsMain.jsp,这样在newsMain.jsp里通过session.getAttribute函数就可以得到在存储在session里的

对应值。

回过头来就容易看出JSP+JavaBean两层结构和JSP+JavaBean+Servlet三层结构的不同了,两层结构必须把

预处理放在JSP中进行,比如说News.SearchNewsTitle(db),三层结构先把预处理在Servlet里进行了,然

后相当于把这个处理结果通过Session返回给JSP,让JSP更关注于界面的显示
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
用SAX的代码生成器降低SAX解析器的繁琐
用于数据的XML:对XQuery的前瞻
XML在B/S架构开发中的应用
与 James Clark 齐步并进
XML和J2EE的组合技术
简析JAVA的XML编程
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(9585)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(7466)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号