JSP+JavaBean+Servlet结构工作原理是什么呢?强大的结构强大的功能,那么本文就向你展现JSP+JavaBean+Servlet结构工作原理的内涵。
JSP+JavaBean两层结构作业原理应该是比较了解的,也比较好了解。
但是有一点必需要清楚便是用户经过浏览器来发送网页的恳求,此恳求抵达服务器后在服务器端查找对应的网页,如果是***恳求(第2次就不必解说履行了),关于JSP来说要生成Servlet,然后经过Servlet引擎来履行 Servlet,把调用JavaBean的成果嵌入到页面中回来给用户的浏览器。
JSP+JavaBean+Servlet三层结构的本质是多了一个Controller:Servlet来分发客户端浏览器的恳求。如果把起控制器效果的Servlet的效果了解为对客户端的恳求进行预处理对了解Servlet将有很大的协助。经过web.xml装备文件能够找到用户恳求和特定的 Servlet的对应联系,每个Servlet都有一个特定的Servlet目标与之对应,所以说处理用户恳求的便是一个承继自HttpServlet的 Servlet目标。
- ﹤!--JSPCservletmappingsstart--﹥
- ﹤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﹥
- ﹤!--JSPCservletmappingsend--﹥
- ﹤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的一个完成。
- publicfinalclassFirstActionextendsHttpServlet{
- protectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)
- throwsServletException,IOException{
- DBdb=newDB();
- HttpSessionsession=req.getSession();
- try{
- session.setAttribute(Constants.NEWS_LIST_KEY,News
- .SearchNewsTitle(db));
- }catch(Exceptione){
- e.printStackTrace();
- }
- db.close();
- Stringtarget="/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更重视于界面的显现。
以上呢便是JSP+JavaBean+Servlet结构作业原理,你是不是对他们有所了解了呢?
【修正引荐】
- JSP Servlet开发开始那点事
- Java Servlet API文档有用阐明
- 无需修正代码增强Servlet和JSP的安全性
- Tomcat下JSP、Servlet和Bean的装备
- 怎么提高Servlet和JSP应用程序的功率