一.概念:MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。
二.问题描述:通过一个简单的例子(计算圆面积)来体会MVC模式和普通的servlet+jsp的区别……
ctrl+"/'是单行注释,只在java文件里有效,在jsp里无效,不过可以撤销;ctrl+shift+"/"在java和jsp文件里都有效果,在jsp文件里是html注释,不过不可撤销,只能ctrl+z撤消了……
- jsp+javabean
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6 <title>JSP+JavaBean</title> 7 </head> 8 <body> 9 <!-- 不写action的话是提交到本页面 --> 10 <form > 11 <input type="text" name="r"/> 12 <input type="submit" value="提交"/> 13 </form> 14 <jsp:useBean id="c" class="bean.Circle"/> 15 <jsp:setProperty property="*" name="c"/> 16 <!-- 从上下文获取 ,原来显示0.0--> 17 <jsp:getProperty property="area" name="c"/> 18 </body> 19 </html>
2.Cicle类
1 package bean; 2 3 public class Circle { 4 5 private double r; 6 private double area; 7 8 public double getR() { 9 return r; 10 } 11 public void setR(double r) { 12 this.r = r; 13 } 14 //面积不可以设定 15 public double getArea() { 16 area = Math.PI * r* r; 17 return area; 18 } 19 }
3.web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>test</display-name> <servlet> <servlet-name>com</servlet-name> <servlet-class>servlet.Com</servlet-class> </servlet> <servlet-mapping> <servlet-name>com</servlet-name> <url-pattern>/com</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
4.输入界面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>输入界面</title> </head> <body> <!--com是servlet中Com.java的名字,随便起 --> <form action="com"> <input type="text" name="r"/> <input type="submit" value="提交"/> </form> </body> </html>
5.输出界面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>输出界面</title> </head> <body> r:${r } <br/> area:${area } </body> </html>
6.servlet文件
1 package servlet; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import bean.Circle; 11 12 public class Com extends HttpServlet { 13 14 @Override 15 protected void service(HttpServletRequest request, HttpServletResponse response) 16 throws ServletException, IOException { 17 String str = request.getParameter("r"); 18 double r = Double.parseDouble(str); 19 20 Circle c = new Circle(); 21 c.setR(r); 22 double area = c.getArea(); 23 24 request.setAttribute("r", str); 25 request.setAttribute("area", area); 26 request.getRequestDispatcher("output.jsp").forward(request, response); 27 28 } 29 30 31 }
时间: 2024-09-20 14:49:53