简单的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;
}
}
===================================结束================================