《高级网站设计》实验报告

武汉纺织大学《高级网站设计》实验报告

班级: 信管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用法; 不熟练,还需多加练习。

相关推荐