初识MVC
来源:互联网 发布:游戏编程培训学校 编辑:程序博客网 时间:2024/05/18 03:30
这是《Head First Servlet&Jsp》上的一个小教程
不过我想说这本书是真的好,以前为了赶进度浑浑噩噩的看完了,最开始是一知半解,后来干脆就忘乎所以了。现在拿出来复习,力求把servlet和jsp学扎实。
直接开始吧:
1- 首先我们分解一下建立web项目的过程
*分析WEB应用的用户视图
*分析体系结构
*创建开发和部署环境(这一步一般在eclipse中全部搞定)
*迭代开发应用
2- 分析用户视图
感觉这一步在我这里很简单,首先是一个默认的form.html页面。
然后用一个result.jsp页面作为正常的回应。
3- 分析体系结构
也就是整个业务流程
*客户请求得到form.html—>容器(在这里是tomcat)获得form.html—>容器把这个表单交给浏览器,用户再在表单上回答问题—->浏览器把请求数据发送给容器—>容器根据URL匹配正确的servlet,并把请求传递给这个servlet—>servlet调用模型解决办法—>模型返回一个回答,servlet把这个回答添加到请求对象—>这个请求对象被servlet转发给JSP—>JSP从请求对象获取回答—>JSP用这个回答生成一个页面—>容器把这个页面返回给用户(浏览器)。
4-正式开始
*首先在eclipse中建立一个Java Web项目
*然后我们开始构建form.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><h1 align="center">Beer Selection Page</h1><form method="POST" action="SelectBeer.do"><!--这个才是重点: method="POST"表示用的post方法;action="SelectBeer.do”表示会发给逻辑资源SelectBeer.do处理 --> Select beer characteristics<p> Color: <select name="color" size="1"> <option value="light">light</option> <option value="amber">amber</option> <option value="brown">brown</option> <option value="dark">dark</option> </selct> <br><br> <center> <input type="SUBMIT"> </center> </form></body></html>
*再构建控制器BeerSelect.java,其实是一个servlet。
package com.example.web;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.example.modle.BeerExpert;import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;public class BeerSelect extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub resp.setContentType("text/html"); PrintWriter out=resp.getWriter(); out.println("Beer Selection Advice<br>"); //利用请求对象得到html页面的所选定的值 String c=req.getParameter("color"); //调用BeerExpert寻求帮助(调用模型更新数据) List brands=new BeerExpert().getBrands(c); //把这个更新放到请求对象 req.setAttribute("styles", brands); //把请求派发给JSP req.getRequestDispatcher("result.jsp").forward(req, resp); //让JSP从请求对象得到更新之后,自己更新页面 //把更新后的页面交给用户 //输出响应 //out.println("<br>Try"+brands.toString()); }}
*写好servlet之后,我们要配置大管家web.xml文件,在这里配置我们的URL映射,也就是,之所以用户提交表单的请求会被容器认出是给到目标servlet的。
这是web.xml文件的关键配置(web.xml文件应该放在WEB-INF下):<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>
*然后是model部分,更多时候是作为数据库交互部分,这里只是一个简单的逻辑。
package com.example.modle; import java.util.*; public class BeerExpert{ public List getBrands(String color){ List brands=new ArrayList<>(); if(color.equals("amber")){ brands.add("Jack Amber"); brands.add("Red Moose"); }else{ brands.add("Jail Pale Ale"); brands.add("Gout Stout"); } return brands; }}
*最后是JSP视图部分
把放到styles中的List用脚本取出来即可。
<% List styles=(List)request.getAttribute("styles"); Iterator it=styles.iterator(); while(it.hasNext()){ out.print("<br>try:"+it.next()); }%>
最后将项目部署到tomcat中即可。
代码非常简单,却是采用了MVC思想。最重要的一些步骤可见代码注释。
- MVC初识
- 初识 MVC
- MVC初识
- 初识MVC
- 初识MVC
- 初识MVC
- 初识MVC
- 初识MVC
- 初识MVC
- 初识《MVC》
- 初识MVC
- 【MVC】初识
- 初识mvc
- 初识MVC
- 【MVC】初识MVC
- 初识asp.net MVC
- 初识MVC模式
- 初识MVC模式
- 动态规划-矩阵链乘法
- Jvm类加载机制理解
- 子网掩码与子网划分
- 登录界面
- plsql链接oracle的版本问题
- 初识MVC
- 使用Cocoapods创建私有podspec
- Android studio 安装
- 学习知识点目录-----每天学一点(高级Android/Java攻城狮)
- banner框架,一个比较齐全的框架
- 王学岗文本/二进制的读取和加密解密
- Android开发环境搭建
- ASP.NET ZERO 学习 —— (15) 应用开发Demo之授权
- sqoop连接sqlServer