JSP+JavaBean+Servlet工作原理实例…

JSP+JavaBean+Servlet工作原理实例讲解

首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念。引用mz3226960提出的MVC的概念,即M-model-模型:JavaBean;V-view-表现:JSP页面;C-control-控制和处理:Servlet。

 

 

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

但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet引擎来执行Servlet,把调用JavaBean的结果嵌入到页面中返回给用户的浏览器。

JSP JavaBean Servlet 三层结构的实质是多了一个Controller:Servlet来分发客户端浏览器的请求。如果把起控制器作用的Servlet的作用理解为对客户端的请求进行预处理对理解Servlet将有很大的帮助。通过web.xml配置文件可以找到用户请求和特定的Servlet的对应关系,每个Servlet都有一个特定的Servlet对象与之对应,所以说处理用户请求的就是一个继承自HttpServlet的Servlet对象。

  1. <servlet>
  2. <servlet-name>ms1servlet-name>
  3. <servlet-class>news.FirstActionservlet-class>
  4. servlet>
  5. <servlet>
  6. <servlet-name>ms2servlet-name>
  7. <servlet-class>news.DetailActionservlet-class>
  8. servlet>
  9. <servlet-mapping>
  10. <servlet-name>ms1servlet-name>
  11. <url-pattern>/newsmainurl-pattern>
  12. servlet-mapping>
  13. <servlet-mapping>
  14. <servlet-name>ms2servlet-name>
  15. <url-pattern>/newsDetailurl-pattern>
  16. 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的一个实现。

  1. public final class FirstAction extends HttpServlet {
  2. protected void service(HttpServletRequest req, HttpServletResponse resp)
  3. throws ServletException, IOException {
  4. DB db = new DB();
  5. HttpSession session = req.getSession();
  6. try {
  7. session.setAttribute(Constants.NEWS_LIST_KEY, News
  8. .SearchNewsTitle(db));
  9. } catch (Exception e) {
  10. e.printStackTrace();
  11. }
  12. db.close();
  13. String target = "/P43_News/newsMain.jsp";
  14. resp.sendRedirect(target);
  15. }
  16. }

通过这个实现可以看到,当服务器收到客户端请求执行 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更关注于界面的显示。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/jamesf/p/4751751.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: windows/linux+ jdk1.4+resin(或tomcat)+jdbc+mysql 5.0 目录结构如下: 本版本数据库采用的是MYSQL,使用JDBC驱动,所以要求有MYSQL的JDBC的驱动程序;将驱动程序放在lib目录下,将WEB-INF目录下的web.xml文件考到你的发布目录下,web.xml是一些servlet的指向 同时将打包的note.jar文件放在lib目录下 本程序的所有的javabeanservlet类文件在src目录下 3、配置文件 修改本软件的数据库连接的配置文件在classes目录下,其中“isLog=on”代表打开日志功能,如果是“isLog=off”的话就表示关闭日志, logPath=D:\\jsp\\com\\ntsky\\log日志路径,logFile=DBConnectionManager.log,日志名相关的请看db.properties(解释得很详细) 不过注意在windows下和linux下路径稍微有点区别,在linux下文档为logPath=/www/log 表示在/www/log目录下。 请填写好你的URL访问路径,比如你的jsp在你的发布目录的note下,就请将你的SiteBaseURL设置成“SiteBaseURL=http://127.0.0.1:8080/note/” 端口号可以改 注意note后还有个/ 4、 数据库 数据库采用mysql 数据库的源文件在sql下的mysql.txt 对应的在sql下还有一份note.sql,你可以通过mysql –u root –p note<note.sql文件路径还原note数据库(前提是你的数据库先有一个空的数据库名为note的库)。 5、 系统初始话 请先运行note目录下的jspInIt.jsp,进行后台密码的初始话,管理后台的密码进行了MD5加密,降低了了秘密被人盗用的几率 6、 此留言本实现了MVC模式,完全是通过servlet控制数据,而且使用了连接池,一些基本的类也是完全提供,对学习jsp的MVC模式有很大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值