青岛科技大学课程实验报告总结Server是运行在Server容器中的Java类,他能处理Web客户的HTTP请求,并产生相应的HTTP相应。
简单地扩展GenericServlet并实现其Service()方法就可以编写一个基本的Servlet,但若要实现一个在Web中处理HTTP的Servlet,则需要继承HttpServlet类。
附录一:1、数据库设计:-- ---------------------------- -- Table structure for TB_USER-- ---------------------------- DROP TABLE "QZX"."TB_USER"; CREATE TABLE "QZX"."TB_USER" ("USERID" NUMBER ,"USERNAME" VARCHAR2(30 BYTE) , "PASSWORD" VARCHAR2(30 BYTE) , "IMAGEPATH" VARCHAR2(100 BYTE) )TABLESPACE "Qust_JavaWeb1" LOGGINGNOCOMPRESSPCTFREE 10INITRANS 1STORAGE (BUFFER_POOL DEFAULT)PARALLEL 1NOCACHEDISABLE ROW MOVEMENT;TB_USER:2、连接数据库:通过数据库连接类,在本地用thin方式连接Oracle数据库:通过DriverManager获取数据库连接利用反射加载好数据库的驱动程序然后再调用其中的getConnection()方法完成数据库的连接。
import java.sql.Connection;import java.sql.DriverManager;import com.lock.util.DbUtil;public class DbUtil {String dburl = "jdbc:oracle:thin:@localhost:1521:orcl";String dbDriverName = "oracle.jdbc.OracleDriver";String dbName = "qzx";String dbpassword = "154876";public Connection getCon() throws Exception{Class.forName(dbDriverName);Connection con=DriverManager.getConnection(dburl,dbName,dbpassword);return con;}public void closeCon(Connection con) throws Exception{if(con!=null) {con.close();}}public static void main(String[] args) {DbUtil dbUtil=new DbUtil();try {dbUtil.getCon();System.out.println("Database connection success ");} catch (Exception e) {e.printStackTrace();System.out.println("Database connection failure ");}}}3、用户实体类及数据库访问建立实体类存储和管理信息映射数据库表public class User {private Integer userId;private String passWord;private String userName;private String imagePath;public User() {super();}public User(String userName, String password) { super();erName = userName;this.password = password;}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {erId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) { erName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}对数据库访问,查询相关信息得到某用户的登录名和相应密码import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class User_Dao {public User login(Connection con,User user) throws SQLException{String sql = "select * from tb_user where userName=? and password=?";User resultUser = null;PreparedStatement pstmt =con.prepareStatement(sql);pstmt.setString(1, user.getUserName());pstmt.setString(2, user.getPassword());ResultSet rs = pstmt.executeQuery();if(rs.next()) {resultUser = new User();resultUser.setUserId(rs.getInt("userId"));resultUser.setUserName(rs.getString("userName"));resultUser.setPassword(rs.getString("password"));resultUser.setImagePath(rs.getString("ImagePath"));}return resultUser;}public boolean isNotExist(Connection con,String userName) throws SQLException { String sql = "select * from tb_user where userName=?";PreparedStatement pstmt =con.prepareStatement(sql);pstmt.setString(1, userName);if(pstmt.executeQuery().next()) {return false;}return true;}}4、用户界面用户界面用CSS和JS布局完成用户输入信息为空或用户名/密码错误时弹出提示:登陆成功时跳转到欢迎页面mainTemp.jsp获取当前登录的用户名:User currentUser =(User)request.getSession().getAttribute("currentUser"); 输出:welcome! <%=currentUser.getUserName()%>5、Servlet控制层服务层配置:import java.io.IOException;import java.sql.Connection;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class Landing extends HttpServlet{private static final long serialVersionUID = 1L;private DbUtil dbUtil = new DbUtil();private UserDao userDao= new UserDao();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String userName = request.getParameter("userName");String password = request.getParameter("passWord");User user = new User(userName,password);Connection con = null;try {con = dbUtil.getCon();User currentUser = userDao.login(con, user);if(currentUser!=null) {HttpSession session = request.getSession();session.setAttribute("currentUser", currentUser);response.sendRedirect("mainTemp.jsp");}else {request.setAttribute("errorInfo", "用户名或密码错误!");request.setAttribute("user", user);request.getRequestDispatcher("login.jsp").forward(request, response);}} catch (Exception e) {e.printStackTrace();}}}用户登陆时,通过login.jsp页面的登陆表单提交请求到LoginServlet.java,进行登陆验证,当验证成功时,把信息存入session,并跳转到mainTemp.jsp,当验证不通过时,返回login.jsp页面。