Way to Webdev:) Head First Servlet & JSP Chap3: 实战MVC

Mystra 发表于 2008-04-12 19:38:43

HTML里面是怎么请求Servlet帮助的呢...?
<html><body>
<form method="POST"
  action="SelectBeer.do">
  Select beer characteristics<p>
  Color:
  <select name="color" size="1">
    <option>light
    <option>amber
  </select>
  <br/><br/>
  <center><input type="SUBMIT"></center>
</form></body></html>

SelectBeer.do需要在DD里面进行映射。
<servlet>
  <servlet-name>Ch3 Beer</servlet-name>
  <servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Ch3 Beer</servlet-name>
  <url-pattern>/SelectBeer.do</url-pattern>  <!-- 不要忘了最前面有一个斜杠!! -->
</servlet-mapping>

相应的Servlet代码,只是个例子...
public void doPost(HttpServletRequest request, HttpServletResponse reponse) throws IOException, ServletException {
  response.setContentType("text/html"); // 设置MIME类型
  PrintWriter out = reponse.getWriter();
  out.println("Beer Select Advice<br>"); // 响应输出
  String c = request.getParameter("color"); // 获取请求参数,后续章节详述
  out.println("<br> got beer color " + c);
}

顺带一提...编译servlet的命令行
javac -classpath {tomcatdir}/common/lib/servlet-api.jar:classes:. -d classes src/com/..../abc.javac

好,作为将这个应用MVC化的一步,把表示层用JSP来做
<%@ page import="java.util.*" %>

<html><body>
<h1 align="center">Beer Recommendations JSP</h1>
<p>

<%
 List styles = (List)request.getAttribute("styles");
 Iterator it = styles.iterator();
 while(it.hasNext() ) {
   out.println("<br>try: " + it.next()) // ??表示层需要输出可变内容,但中间又夹杂<br>之类的固定格式,这应该怎么写才漂亮?
 }
%>
</body></html>

好了,然后,我们在Servlet中把请求分派给这个jsp...
public void doPost(...) throws... {
  String c = request.getParameter("color");
  BeerExpert be = new BeerExpert();
  List result = be.getBrands(c);
  request.setAttrbute("styles", result);
  RequestDispatcher view = request.getRequestDispatcher("result.jsp"); // 为jsp实例化一个请求指派器
  view.forward(request, response); // 向JSP发送请求和响应
}

关键词(Tag): jsp servlet mvc


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定