JSP JavaBean Servlet工作原理实例讲解

来源:互联网 发布:怎么从网络电视切换 编辑:程序博客网 时间:2024/06/06 07:47
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>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更关注于界面的显示
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 丰县站 丰县招聘 丰县二手房 中国丰县网 丰县汽车站 丰县教育 丰县房产网 江苏省丰县 丰县地产网 丰县信息港 丰县吧 丰县中学 丰县火车站 丰县求租房 丰县玻璃厂 丰县杏花村 丰县罐头厂 丰县香榭里 丰县教师吧 丰县开发区 丰县风景区 丰县租房子 丰县信息网 丰县的房价 丰县美容院 丰县培训班 丰县养老院 丰县服装厂 丰县招商网 丰县 交友 徐州到丰县 太丰县 丰县精装房 丰县马德保 新疆和丰县 丰县到郑州 丰县幼儿园 孝丰县 盐丰县 丰县 公司 丰县采购网