简单的MVC格式

==============================前台界面===============================
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'index.jsp' starting page</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
  </head>
 
  <body>
  <div align="center">
       <input type="button" onclick="window.location.href('jsp/addmessage.jsp')" value="添加日记">
       <input type="button" onclick="window.location.href('ListMessageServlet.action')" value="查询日记">
       </div>
  </body>
</html>
================================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" 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>Demo</display-name>
  <welcome-file-list>
    <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>
 
  <servlet>
  <servlet-name>AddMessageServlet</servlet-name>
  <servlet-class>fengke.mvc.servlet.AddMessageServlet</servlet-class>
  </servlet>
  <servlet>
  <servlet-name>ListMessageServlet</servlet-name>
  <servlet-class>fengke.mvc.servlet.ListMessageServlet</servlet-class>
  </servlet>
 

  <servlet-mapping>
  <servlet-name>AddMessageServlet</servlet-name>
  <url-pattern>/AddMessageServlet.action</url-pattern>
  </servlet-mapping>
 
  <servlet-mapping>
  <servlet-name>ListMessageServlet</servlet-name>
  <url-pattern>/ListMessageServlet.action</url-pattern>
  </servlet-mapping>
 
 
 
</web-app>
==============================前台界面==================================================
<%@ page language="java" import="java.util.*,fengke.mvc.vo.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'listmessage.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <h1 align="center">查询日记</h1>
   
    <table align="center">
    <form action="AddMessageServlet.action">
              <tr>
              <th>序号</th>
              <th>日期</th>
              <th>简介</th>
              <th>内容</th>
              </tr>   
              <%  List<Message> list=(List<Message>)request.getAttribute("list");
                 for(Message mg:list){
              %>
             
              <tr>
              <td><input type="text" name="id" value="<%=mg.getId() %>" ></td>
              <td><input type="text" name="time" value="<%=mg.getTime() %>"></td>
              <td ><input type="text" name="infor" value="<%=mg.getInfor() %>"></td>
              <td ><input type="text" name="message" value="<%=mg.getMessage() %>"></td>
              </tr>
              <%} %>
              <tr>
              <td colspan="2"><input type="submit" align="middle" value="添加"></td>
              <td colspan="2"><input type="reset" align="middle" value="重置"></td>
              </tr>
             
       </form>
    </table>
  </body>
</html>


====================================前台界面=====================================
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'addmessage.jsp' starting page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <h1 align="center">添加日记</h1>
   
    <table align="center">
    <form action="AddMessageServlet.action">
              <tr>
              <th>日期</th>
              <th>简介</th>
              <th colspan="2">内容</th>
              </tr>   
             
              <tr>
              <td><input type="text" name="time" ></td>
              <td><input type="text" name="infor" ></td>
              <td colspan="2"><input type="text" name="message" ></td>
              </tr>
             
              <tr>
              <td colspan="2"><input type="submit" align="middle" value="添加"></td>
              <td colspan="2"><input type="reset" align="middle" value="重置"></td>
              </tr>
             
       </form>
    </table>
  </body>
</html>
==============================servlet   控制层===================================
package fengke.mvc.servlet;

import java.io.IOException;
import java.sql.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import fengke.mvc.service.MessageService;
import fengke.mvc.vo.Message;

/**
 * 控制层
 *
 * @author 锋客 添加日记信息
 */
public class AddMessageServlet extends HttpServlet {

 /**
  * 1.接收前台信息 2.将前台信息传入到逻辑层中
  */
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // 接收前台信息
  req.setCharacterEncoding("utf-8");
  resp.setCharacterEncoding("utf-8");
  /*
   * parameter与attribute的区别:
   *
   *String time=(String) req.getAttribute("time");
   * String infor=(String) req.getAttribute("infor");
   * String message=(String) req.getAttribute("message");
  */
  //接收时间信息
  String time =new String(req.getParameter("time").getBytes("ISO8859-1"),"utf-8");
  //接收简介
  String infor = new String(req.getParameter("infor").getBytes("ISO8859-1"),"utf-8");
  //接收内容
  String message = new String(req.getParameter("message").getBytes("ISO8859-1"),"utf-8");
  // 检查是否成功接收
  System.out.println(time + " " + infor + " " + message);
  //创建一个AddMessageService对象,实现数据传输
  MessageService addMessage = new MessageService();
  //实例化一个message对象,保存信息,注意包:java.sql.Date
  Date date=Date.valueOf(time);
  Message mesg = new Message(1,date,infor,message);
  addMessage.addMessage(mesg);
  //跳转
  resp.sendRedirect("index.jsp");
  

 }

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  //使其调用doPost方法
  this.doPost(req, resp);
 }
 

}
==============================servlet   控制层================================================
package fengke.mvc.servlet;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.w3c.dom.ls.LSInput;
import fengke.mvc.service.MessageService;
import fengke.mvc.vo.Message;
/**
 * 查询所有日记信息
 * @author 锋客
 *
 */
public class ListMessageServlet extends HttpServlet{
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  //设置格式
  req.setCharacterEncoding("utf-8");
  resp.setCharacterEncoding("utf-8");
  //创建service对象
  MessageService listMessage = new MessageService();
  List<Message> list = listMessage.listAll();
  //向前台传值
  req.setAttribute("list", list);
  //跳转
  req.getRequestDispatcher("jsp/listmessage.jsp").forward(req, resp);
 }
 
 
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
 
  this.doPost(req, resp);
 }

}


=================================service   逻辑层=============================================
package fengke.mvc.service;

import java.sql.Date;
import java.util.List;

import fengke.mvc.dao.MessageDao;
import fengke.mvc.vo.Message;

/**
 * 逻辑控制层
 * @author 锋客
 * 内容:将信息传入到MessageDao中
 */

public class MessageService {
 
 //添加日记信息(需要传入一个Message对象)
 public void addMessage(Message message){
  MessageDao dao = new MessageDao();
  dao.addMessage(message.getId(), message.getTime(), message.getInfor(), message.getMessage());
  
 }
 /*
  * 测试service层到dao层以及db层,是否成功搭建
  *
 * public static void main(String[] args) {
 * //包:java.sql.Date;
 * Date date=Date.valueOf("2012-02-01");
 * System.out.println(date);
 * Message mesg=new Message(2,date,"约会","小李");
 * AddMessageService addMessageService=new AddMessageService();
 * addMessageService.addMessage(mesg);
 * }
 *
 */
 
 /**
  * 查询所有信息
  * @return
  * 内容:
  * 通过调用dao层,查找数据库中的信息
  *
  */
 public List<Message> listAll(){
  MessageDao dao = new MessageDao();
  List<Message> list = dao.listMessage();
  return list;
 }

}
==============================jdbc   获得链接=============================================
package fengke.mvc.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 * 获得链接
 * @author 锋客
 * 创建与数据库的链接
 */
public class Jdbc {
 /**
  * userName  用户名
  * passWord  密码
  * url       地址(必须记)
  * con       链接
  */
 static String userName="root";
 static String passWord="root";
 static String url="jdbc:mysql://127.0.0.1:3309/demo";
 static Connection con=null;
 
 static{
  try {
   Class.forName("com.mysql.jdbc.Driver");
   con=DriverManager.getConnection(url, userName, passWord);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
 public static Connection getConnection(){
  //检测是否正确获得链接
  //System.out.println(con);
  return con;
  
 }
 

}
============================dao    操作层=============================================
package fengke.mvc.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import fengke.mvc.db.Jdbc;
import fengke.mvc.vo.Message;
/**
 * 对dairy表的操作
 * @author 锋客
 *
 */
public class MessageDao {
 private Jdbc jdbc=new Jdbc();
 /*
  * 添加日记信息:
  * 通过获得链接,将信息传入到数据库中
  *
  */
 public void addMessage(int id, Date time, String infor, String message){
  Connection con = jdbc.getConnection();
  //防止sql注入
  String sql="insert into dairy(time,infor,message)values(?,?,?)";
  try {
   PreparedStatement ps=con.prepareStatement(sql);
   ps.setDate(1, time);
   ps.setString(2, infor);
   ps.setString(3, message);
   ps.executeUpdate();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }
 
 public List<Message> listMessage(){
  Connection con = jdbc.getConnection();
  //查询语句
  String sql="select id,time,infor,message from dairy";
  //接收信息
  List<Message> list=new ArrayList<Message>();
  /*创建Message对象
   * Message mg=new Message();
   * 不能放在while之外,当使用上述方式创建对象时,内存地址给定,
   * list中的所有对象都指向同一个,最后一个
   */
  
  try {
   PreparedStatement ps=con.prepareStatement(sql);
   ResultSet rs = ps.executeQuery();
   while(rs.next()){
    //注意位置(对引用的理解)
    Message mg=new Message();
    //设置mg对象属性
    mg.setId(rs.getInt(1));
    mg.setTime(rs.getDate(2));
    mg.setInfor(rs.getString(3));
    mg.setMessage(rs.getString(4));
    list.add(mg);
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
        return list;
  
 }
   /* 
    * 测试:是否可以查询到结果集
 *public static void main(String[] args) {
 * MessageDao dao = new MessageDao();
 * List<Message> list = dao.listMessage();
 *   for(Message mg:list){
 *   System.out.println(mg.getId()+"   "+mg.getTime()+"    "+mg.getInfor()+"    "+mg.getMessage());
 *  
 *}
 *}
    */
}
===============================vo  实体类===============================================
package fengke.mvc.vo;

import java.sql.Date;
import java.sql.Time;

/**
 * 实体层
 * @author 锋客
 * 用于简化数据传输
 */
public class Message {
 /*
  * id: 主键
  * time:时间
  * infor:简介
  * message:详细信息
  */
 private int id;
 private Date time ;
 private String infor ;
 private String message;
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public Date getTime() {
  return time;
 }
 public void setTime(Date time) {
  this.time = time;
 }
 public String getInfor() {
  return infor;
 }
 public void setInfor(String infor) {
  this.infor = infor;
 }
 public String getMessage() {
  return message;
 }
 public void setMessage(String message) {
  this.message = message;
 }
 public Message() {
  super();
  // TODO Auto-generated constructor stub
 }
 public Message(int id, Date time, String infor, String message) {
  super();
  this.id = id;
  this.time = time;
  this.infor = infor;
  this.message = message;
 }
 

}
===================================结束================================

posted on 2015-10-28 00:17  锋客person  阅读(146)  评论(0编辑  收藏  举报