武汉纺织大学《高级网站设计》实验报告
班级: 信管2101 姓名:郑飞 实验时间:20xx年5月3日 指导教师:陈冈 一、实验目的
1. 学习并掌握Servlet、JavaBean的用法;
2. 学习并掌握EL表达式;
3. 学习并掌握MVC用法。
二、实验内容
1. 编写Servlet,使其显示一个Excel成绩单表格。;
2. 编写JavaBean,实现用户登录处理;
3. 利用MVC架构,实现用户的注册、登录。
三、操作步骤
1. 编写Servlet显示一个Excel表格:
package Jsq;
import java.io.IOException;import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class qq
*/
@WebServlet("/downscore")
public class qq extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException private static final String CONTENT_FILE_NAME = "attachment;filename=score.xls"; private static final long serialVersionUID = 1L; private static final String CONTENT_TYPE= "application/vnd.ms-download;charset=GB18030";
{
}
} CONTENT_TYPE); response.setHeader("Content-Disposition", CONTENT_FILE_NAME); PrintWriter out = response.getWriter(); out.println("<table width=300 border=1>"); out.println("<tr><td>张三</td><td>90</td><td>1</td></tr>"); out.println("<tr><td>李四</td><td>85</td><td>2</td></tr>"); out.println("<tr><td>王五out.close(); </td><td>80</td><td>3</td></tr>");out.println("</table>");
表格如下图所示:
2. 编写JavaBean,实现用户登录处理: User.java
package models;
public class User {
private String username; private String password; public String getUsername() { } public void setUsername(String username) { } public String getPassword() { } public void setPassword(String password) { this.password = password; return password; this.username = username; return username;
} }
Exelogin.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<jsp:useBean id="user" class="models.User" scope="request" /> <jsp:setProperty property="*" name="user" />
<%@ page import="java.sql.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title>
</head>
<body>
<%
%>
</body>
</html> } else response.sendRedirect("login.jsp"); conn.close(); String url = "jdbc:mysql://localhost/qq"; String usr = "root"; String pwd = "210"; try { Connection conn = DriverManager.getConnection(url, usr, pwd); String sql = "select id from user where username=? and password=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, user.getUsername()); ps.setString(2, user.getPassword()); ResultSet rs = ps.executeQuery(); if (rs.next()) { response.sendRedirect("admin.jsp"); } catch (Exception e) { e.printStackTrace(); }
Login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>用户登录</title>
</head>
<body>
<form name="login" method="post" action="exelogin.jsp">
用户名<input type="text" name="username"> 密 码<input type="password" name="password"> <input type="submit" value="登录"> <input type="reset" value="重置">
</form>
</body>
</html>
Admin.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title>
</head>
<body>
恭喜你登录成功。。。
</body>
</html>
3. 利用MVC架构,实现用户的注册、登录:
Admin.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title>
</head>
<body>
恭喜你登录成功。。。
</body>
</html>
LoginAction.java
package Controller;
import java.io.IOException;
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 models.User;
/**
* Servlet implementation class LoginAction
*/
@WebServlet("/login.do")
public class LoginAction extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginAction() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username");
String password = request.getParameter("password");
UserDAO userDAO = new UserDAO();
User user = userDAO.getUser(username, password);
if (user != null) {
request.setAttribute("user", user);
RequestDispatcher rd = request
.getRequestDispatcher("admin.jsp");
rd.forward(request, response);
} else
response.sendRedirect("login.jsp");
}
}
DBManager.java
package models;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
public class DBManager {
private Connection conn = null;
private static final String url = "jdbc:mysql://localhost/mytest?useUnicode=true&characterEncoding=UTF-8";
private static final String user = "root";
private static final String password = "007";
private PreparedStatement preparedStatement = null;
public DBManager(String sql) {
try {
conn = (Connection) DriverManager.getConnection(url, user, password); if (conn == null)
return;
preparedStatement = (PreparedStatement) conn.prepareStatement(sql);
} catch (SQLException e) { e.printStackTrace(); }
}
public void closeConn() {
try {
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) { e.printStackTrace(); }
}
public PreparedStatement getPreparedStatement() {
return preparedStatement;
}
}
UserDAO.java
package Controller;
import java.sql.*;import java.sql.PreparedStatement;
import models.DBManager;
import models.User;
public class UserDAO {
public User getUser(String username, String password) { User user = null;
String sql = "select * from user where username=? and password=?";
DBManager db = new DBManager(sql);
try {
PreparedStatement ps = db.getPreparedStatement(); ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next())
user = new User(rs.getInt(1), rs.getString(2), rs.getString(3));
ps.close();
} } catch (SQLException e) { e.printStackTrace(); } finally{ db.closeConn(); } return user; }
Mav注册处理
User.Java
package md;
import java.io.Serializable;
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private String username;
private String password;
private String sex;
private String professional;
private String address;
private String postcode;
public User() { super(); }
public User(int id, String username, String password, String sex, String professional, String address, String postcode) { this.id = id;
this.username = username;
this.password = password;
this.setSex(sex);
this.setProfessional(professional);
this.setAddress(address);
this.setPostcode(postcode);
}
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String getSex() {
return sex;
} } public void setSex(String sex) { this.sex = sex; } public String getProfessional() { return professional; } public void setProfessional(String professional) { this.professional = professional; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPostcode() { return postcode; } public void setPostcode(String postcode) { this.postcode = postcode; }
UserDao
package md;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDao2 implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private User user;
//查询用户
public User getUser(String username, String password) {
try {
String sql = "select * from user where username=? and password=?"; DBManager db = new DBManager(sql);
PreparedStatement ps = db.getPreparedStatement();
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
int id = rs.getInt("id");
String usr = rs.getString("username");
String pwd = rs.getString("password");
String sex = rs.getString("sex");
String professional = rs.getString("professional");
String address = rs.getString("address");
String postcode = rs.getString("postcode"); user = new User(id, usr, pwd, sex, professional, address, postcode);
}
ps.close();
db.closeConn();
} catch (SQLException e) { e.printStackTrace(); }
return user;
}
{
}
//用户注册
public int addUser(User user) {
try {
if (getUser(user.getUsername(), user.getPassword()) != null)
return 1;// 该用户名已经存在
String sql = "insert into user(username,password,sex,professional,address,postcode) values(?,?,?,?,?,?)";
DBManager db = new DBManager(sql);
PreparedStatement ps = db.getPreparedStatement();
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ps.setString(3, user.getSex());
ps.setString(4, user.getProfessional());
ps.setString(5, user.getAddress());
ps.setString(6, user.getPostcode());
int added = ps.executeUpdate();
ps.close();
db.closeConn();
return added == 1 ? 0 : -1;
} catch (SQLException e) { e.printStackTrace(); }
return -1;// 异常错误
}
public void setUser(User user) { this.user = user; }
}
UserManagAction2
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
try {
String desURL = "index.jsp";// 默认转发到主页
User userbean = new User();
BeanUtils.populate(userbean, request.getParameterMap());
UserDAO udao = new UserDAO();
String action = request.getParameter("action");
if (action != null) {
if (action.equals("register")) {
int state = udao.addUser(userbean);
request.setAttribute("user", state);
desURL = "register.jsp";
}
if (action.equals("login")) {
User user = udao.getUser(userbean.getUsername(),
userbean.getPassword());
if (user != null)
desURL = "WEB-INF/admin.jsp";
else
desURL = "login.jsp";
request.setAttribute("user", userbean);// 保存登录状态
}
}
RequestDispatcher rd = request.getRequestDispatcher(desURL);
rd.forward(request, response);
Register.jsp
<%@ page language="java" contentType="text/html;
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
"/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center> charset=UTF-8" Transitional//EN"
<form name="register" method="post" action="userManag?action=register"> 用户名<input type="text" name="username"><br>
密码<input type="password" name="password"><br>
性别 <input type="radio" name="sex" value="男" />男
<input type="radio" name="sex" value="女" />女<br> 职业<input type="text" name="professional"><br>
地址<input type="text" name="address"><br>
邮编<input type="text" name="postcode"><br>
<input type="submit" value="注册">
<input type="reset" value="重置">
</form>
<c:if test="${user!=null&&user=='1'}">
<font style="color: #FF0000">该用户已存在!</font>
</c:if>
<c:if test="${user!=null&&user=='0'}">
<font style="color: #FF0000">注册成功!</font>
</c:if>
<c:if test="${user=='-1'}">
<font style="color: #FF0000">注册失败!</font>
</c:if>
</center>
</body>
</html>
四、实验收获和建议
1.
2.
3.
4.
基本掌握了Servlet、JavaBean的用法; 基本掌握了EL表达式; 基本掌握了MVC用法; 不熟练,还需多加练习。
学院计算机系综合性实验实验报告课程名称网页制作实验学期20xx至20xx学年第2学期学生所在系部计算机系年级20xx专业班级Z09…
Web网站设计实验报告学生学号班级系别学院目录一设计目的3二设计题目3三结构设计3四技术分析5五设计过程6六实验总结7网页源代码节…
河南城建学院《网页制作》课程设计报告学号:专业:姓名:题目:指导教师:设计时间:计算机科学与工程系20##年6月目录一设计目的..…
浙江传媒学院网站设计课程实验报告课程设计名称网页设计与编程实训设计题目中小企业个体商业网站系部电子信息学院专业信息管理与信息系统学…
实验三网站规划书撰写一、实验目的1、了解网站规划的主要内容2、掌握网站规划的要点3、能够撰写专业的网站规划书二、实验内容网站规划是…
电子商务网站建设实习报告一、实习目的:电子商务网站建设课程实习是电子商务专业的重要实践环节。通过实习使学生能够更进一步的领会电子商…
电子商务网站设计与管理课程设计个人报告第一部分工作日记20xx-12-21星期一今天是星期一,是课程设计的动员大会,接下来是为期两…
网页设计与制作实验报告院系名称管理学院专业班级电子商务10级02班学生姓名学号20xx年5月11日实验三JavaScript实验一…
电子商务网站建设期末设计报告班级3170802第一作者杨秋旋08690238姓名学号第二作者杨庆08690204姓名学号指导教师代…