学习javaweb,不能一直停留在片段式的学习模式中,今天决定花点时间综合学习过的零散知识写一个比较系统的小型项目,对于刚学习JavaEE的同学可能有一些帮助,仅作为学习参考。
主要的开发工具有Eclipse、tomcat8.0、Mysql、JDBC程序驱动
开发环境为windows系统
开发模式:mvc模式,当然这个不只是Servlet+JSP+JavaBean一种case,它是一种思想,实现web系统的职能分工。简单来说:
Model层:实现系统的业务逻辑,即javaBean部分
View层:负责与用户交互,即在界面上展示数据对象给用户,即html,jsp
Control层:Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作,当然就是Servlet的职责了。不明白的看下图:
功能:实现简单的注册登录,以及留言查看留言的功能
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ page import="java.sql.*,java.io.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>欢迎注册title>
head>
<body bgcolor=cyan>
<font size=3>
<div style="text-align:center;margin-top:120px">
<form action="register" method="post" name=registerform>
<table style="margin-left:40%">
<tr height="20">
<td align="right">用户名td>
<td height="35"><input type="text" name="name">td>
tr>
<br>
<tr height="35">
<td align="right">登录密码td>
<td><input type="password" name="pwd">td>
tr>
<br>
<tr height="35">
<td align="right">再输入一次td>
<td><input type="password" name=rpwd>td>
tr>
<br>
<tr height="35">
<td align="right">手机号td>
<td><input type="text" name="phone">td>
tr>
<br>
<tr height="35">
<td align="right"><a href="login.jsp"><input
type="button" value="登录" name="button">a>
<td><h1 align="center">
<input type="submit" value="注册" name="registsubmit">td>
tr>
table>
div> <br>
<br>
body>
html>
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>登录title>
head>
<body bgcolor=cyan>
<font size=3>
<div style="text-align: center; margin-top: 120px">
<form action="login" method="post" name=loginform>
<table style="margin-left: 40%">
<caption>
<b>用户登录b>
caption>
<tr height="35">
<td align="right">用户名td>
<td><input type="text" name="name" sise="20">td>
tr>
<tr height="35">
<td align="right">登录密码td>
<td><input type="password" name="pwd">td>
tr>
table>
<input type="submit" value="登录" name="loginsubmit"> <input
type="reset" value="重置" name="resetsubmit">
form>
<br> <a href="register.jsp"><input type="button" value="注册"
name="button">a>
div>
font>
body>
html>
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>主页面title>
head>
<body gbcolor=#ddd>
<p>welcomep>
<form action="showMessage" method="post" name="showMessage">
<input type="submit" value="查看留言板" name="look">
form>
<p>
<a href="writeMessage.jsp">我要留言a>
p>
body>
html>
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body BGCOLOR=CYAN>
<form action="addMessage" method="post" name="mess">
输入您的名字:<input type="text" name="name"> <br>输入您的留言标题:<input
type="text" name="title"> <br>输入您的留言:<br>
<textarea rows="10" cols="40" name="message" WRAP="physical">textarea>
<br> <input type="submit" value="提交信息" name="submit">
form>
<form action="showMessage" method="post" name="showMessage">
<input type="submit" value="查看留言板" name="look">
form>
body>
html>
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言成功页面title>
head>
<body bgcolor=red>
<p>留言成功p>
<form action="showMessage" method="post" name="showMessage">
<input type="submit" value="查看留言板" name="look">
form>
body>
html>
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@page import="java.util.Iterator"%>
<%@ page import="model.Message"%>
<%@ page import="dao.*"%>
<%@ page import="db.*"%>
<%@ page import="java.util.ArrayList"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言板界面title>
head>
<body bgcolor=cyan>
<div stytle="margin-left:35%;margin-top:100px;font-family:Microsoft YaHei">
<h1 stytle="margin-left:5%">欢迎登录至留言板主界面h1>
<form action="showMessage" method="get">
<table border="1">
<caption>所有留言信息caption>
<tr>
<th>留言人姓名th>
<th>留言时间th>
<th>留言标题th>
<th>留言内容th>
tr>
<%
ArrayList mess = new ArrayList();
mess = (ArrayList)session.getAttribute("msg");
if (mess != null) {
Iterator iter = mess.iterator();
while (iter.hasNext()) {
Message message = (Message) iter.next();
%>
<tr>
<td><%=message.getName()%>td>
<td><%=message.getTitle()%>td>
<td><%=message.getMessages()%>td>
<td><%=message.getTime()%>td>
tr>
<%
}
}
%>
table>
form>
div>
body>
html>
package model;
public class UserInfo {
private String name;
private String pwd;
private String rpwd;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getRpwd() {
return rpwd;
}
public void setRpwd(String rpwd) {
this.rpwd = rpwd;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
package model;
public class Message {
private String name;
private String title;
private String messages;
private String time;
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMessages() {
return messages;
}
public void setMessages(String messages) {
this.messages = messages;
}
}
package dao;
import java.util.ArrayList;
import db.DBHelper;
import model.UserInfo;
import model.Message;
public class UserDaoImpl implements UserDao {
DBHelper dbHelper;
UserInfo userInfo;
boolean isRegisterSuccess = false;
boolean isLoginSuccess = false;
boolean isSuccess = false;
String a = null;
String b = null;
String c = null;
String d = null;
public UserDaoImpl(String a, String b, String c, String d) {
dbHelper = new DBHelper();
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
@Override
public boolean Login() {
isLoginSuccess = dbHelper.query(a, b);
return isLoginSuccess;
}
@Override
public boolean Register() {
String db = "user_Info";
isRegisterSuccess = dbHelper.insert(db, a, b, c, d);
return isRegisterSuccess;
}
@Override
public boolean AddMessage() {
String db = "message_Info";
isSuccess = dbHelper.insert(db, a, b, c, d);
return isSuccess;
}
@Override
public ArrayList ShowMessage() {
ArrayList mess = new ArrayList();
mess = dbHelper.queryMessage();
return mess;
}
}
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDaoImpl;
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
public RegisterServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String rpwd = request.getParameter("rpwd");
String phone = request.getParameter("phone");
UserDaoImpl userDaoImpl = new UserDaoImpl(name, pwd, rpwd, phone);
if (userDaoImpl.Register()) {
response.sendRedirect("login.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDaoImpl;
import db.DBHelper;
import model.UserInfo;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
public LoginServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
UserDaoImpl userDaoImpl = new UserDaoImpl(name, pwd, null, null);
if (userDaoImpl.Login()) {
response.sendRedirect("main.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
package servlet;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDaoImpl;
@WebServlet("/MessageServlet")
public class AddMessageServlet extends HttpServlet {
public AddMessageServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
String name = request.getParameter("name");
String title = request.getParameter("title");
String message = request.getParameter("message");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String time = sdf.format(date);
UserDaoImpl userDaoImpl = new UserDaoImpl(name, title, message, time);
if (userDaoImpl.AddMessage()) {
response.sendRedirect("success.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
package servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDaoImpl;
import model.Message;
@WebServlet("/ShowMessageServlet")
public class ShowMessageServlet extends HttpServlet {
public ShowMessageServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
UserDaoImpl userDaoImpl = new UserDaoImpl(null, null, null, null);
ArrayList msg = new ArrayList();
msg = userDaoImpl.ShowMessage();
if (!msg.isEmpty()) {
request.getSession().setAttribute("msg", userDaoImpl.ShowMessage());
response.sendRedirect("showMessage.jsp");
}
// RequestDispatcher dispatcher = request.getRequestDispatcher("showMessage.jsp");
// dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
<servlet>
<servlet-name>registerservlet-name>
<servlet-class>servlet.RegisterServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>registerservlet-name>
<url-pattern>/registerurl-pattern>
servlet-mapping>
<servlet>
<servlet-name>loginservlet-name>
<servlet-class>servlet.LoginServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>loginservlet-name>
<url-pattern>/loginurl-pattern>
servlet-mapping>
<servlet>
<servlet-name>addMessageservlet-name>
<servlet-class>servlet.AddMessageServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>addMessageservlet-name>
<url-pattern>/addMessageurl-pattern>
servlet-mapping>
<servlet>
<servlet-name>showMessageservlet-name>
<servlet-class>servlet.ShowMessageServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>showMessageservlet-name>
<url-pattern>/showMessageurl-pattern>
servlet-mapping>
create database jspdev;
use jspdev;
drop table user_Info;
create table user_Info(
uname varchar(15),
pwd varchar(20),
rpwd varchar(20),
phone varchar(15)
);
create table message_Info(
uname varchar(15),
title varchar(20),
message varchar(20),
msgtime varchar(15)
);