心得12--MVC设计模式
采用MVC设计模式实现一个简单示例程序:
l UserRegister.html是一个包含有让用户填写注册信息的FORM表单的HTML页面;
l User.java是一个代表用户注册信息的普通Java类;
l ActionServlet.java是一个用于处理FORM表单信息的Servlet程序,它根据表单提交的信息创建一个User类的实例对象,并把这个User实例对象存储到请求域中,然后将请求转发给另外一个用于显示用户注册信息的Servlet程序;
l JspResultServlet.java是一个用于显示用户注册信息的Servlet程序,JspResultServlet从请求域中取出User实例对象,并显示出这个User实例对象的信息。
针对上述的简单案例:
UserRegister.html
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>UserRegister.html</title>
<meta http-equiv="keywords"content="keyword1,keyword2,keyword3">
<meta http-equiv="description"content="this is my page">
<meta http-equiv="content-type"content="text/html; charset=UTF-8">
<!--<linkrel="stylesheet" type="text/css"href="./styles.css">-->
</head>
<body>
<form action="./ActionServlet"method="post">
用户名:<inputtype="text"name="name"><br>
密 码:<inputtype="password"name="password"><br>
邮 箱:<inputtype="text"name="email"><br>
<input type="submit"value="提交">
<input type="reset"value="重置">
</form>
</body>
</html>
User.java
package com.csdn.domain;
publicclass User {
private Stringname;
private Stringpassword;
private Stringemail;
public User() {
}
public User(String name, String password, String email) {
super();
this.name = name;
this.password = password;
this.email = email;
}
public String getName() {
returnname;
}
publicvoid setName(String name) {
this.name = name;
}
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
public String getEmail() {
returnemail;
}
publicvoid setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return"User[email=" +email + ",name=" + name +",password="
+ password + "]";
}
}
ActionServlet.java
packagecom.csdn.controller;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.csdn.domain.User;
publicclass ActionServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
String name =request.getParameter("name");
String email =request.getParameter("email");
String password =request.getParameter("password");
User user = new User();
user.setName(name);
user.setEmail(email);
user.setPassword(password);
request.setAttribute("user",user);
request.getRequestDispatcher("JspResultServlet").forward(request,response);
}
public void doPost(HttpServletRequestrequest, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
JspResultServlet.java
packagecom.csdn.view;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.csdn.domain.User;
publicclass JspResultServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
User user = (User)request.getAttribute("user");
if(user != null){
pw.println("<h1>你的注册信息如下:</h1>");
pw.println("<h3>用户名:"+user.getName()+"</h3><br>");
pw.println("<h3>密 码:"+user.getPassword()+"</h3><br>");
pw.println("<h3>邮 箱:"+user.getEmail()+"</h3>");
}
pw.close();
}
public void doPost(HttpServletRequestrequest, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}