刚开始接触JSP,打算写写博客记录记录,大佬可以不用看了…
1、JSP
在编写登录界面之前需要安装服务器(这里使用的是Tomcat)并且安装IDE以及进行相关的部署。这里就不进行赘述了。
①JSP注释语法:
<%-- 注释内容 -->
②Java注释语法:
//注释内容
/* 多行注释*/
在JSP程序段中,变量必须要先定义,后使用。
<%!
String str = "XXX";
%>
JSP动作是指使用XML语法格式的标记来控制服务器的行为。
或者
相关内容
JSP动作包括:
(1) jsp:include ---------- 当页面被请求的时候引入一个文件
(2)jsp:forward ---------- 将请求转到另外一个页面
(3)jsp:useBean --------- 获得JavaBean的一个实例
(4)jsp:setProperty ----- 设置JavaBean的属性
(5)jsp:getProperty ----- 获得JavaBean
(6)jsp:plugin ----------- 根据浏览器类型,为Java插件生成OBJECT或EMBED两种标记。
功能4cookie信息是存在客户端的,session信息是存在服务器的。
2、代码展示
1、创建相关的数据库以及表数据,我使用的是Orcale,图形化界面用的是PLSQL(其实表登录只需要MEMBER表即可,其余表是其他用途)。
2、第二开始开发,采用mvc的设计模式,分开进行设计;
首先package com.shopping.model;对User类进行封装数据。为了后面方便使用;注意是在不同的包中的。
package com.shopping.model;
public class User {
private String memberNo;
private String memberPassword;
private String nameId;
private String memberName;
private String sex;
private String birthday;
private String pwd;
private String phone;
private String type;
private String address;
private String regDate;
private String email;
private String id;
private String grade;
public User() {
super();
}
public User(String username, String password) {
super();
nameId = username;
memberPassword = password;
}
public String getMemberPassword() {
return memberPassword;
}
public void setMemberPassword(String memberPassword) {
this.memberPassword = memberPassword;
}
public String getNameId() {
return nameId;
}
public void setNameId(String nameId) {
this.nameId = nameId;
}
}
其次对连接数据库进行封装,方便后面调用连接数据库,这里封装好数据库并进行测试是否连接成功,并且需要导入odbc.jar文件;注意是在不同的包中的。
package com.shopping.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbUtil {
private String url="jdbc:oracle:thin:@IP地址:IP端口号:数据库名";
private String user = "账号";
private String password = "密码";
private String driver = "oracle.jdbc.OracleDriver";
public Connection getCon() throws Exception{
Class.forName(driver);
Connection con = DriverManager.getConnection(url, user, password);
return con;
}
public static void getClose(Connection con)throws SQLException{
if(con!=null) {
con.close();
}
}
public static void main(String[] args) {
DbUtil db = new DbUtil();
try {
db.getCon();
System.out.println("测试连接数据库,连接成功");
}catch (Exception e) {
e.printStackTrace();
System.out.println("测试连接数据库,连接失败");
}
}
}
对数据封装好,对连接数据库封装好,接下来封装对数据库的操作;注意是在不同的包中的。
package com.shopping.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.shopping.model.User;
public class UserDao {
public User login(Connection con,User user)throws SQLException{
User resultUser = null;
String sql = "select * from Member where nameId=? and memberPassword=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, user.getNameId());
ps.setString(2, user.getMemberPassword());
ResultSet rs = ps.executeQuery();
if(rs.next()) {
resultUser = new User();
resultUser.setNameId(rs.getString("nameId"));
resultUser.setMemberPassword(rs.getString("memberPassword"));
}
return resultUser;
}
}
封装好上面的接下来就进行主要代码的开发,使用Servlet对数据进行处理和操作;注意在不同的包中。
package com.shopping.web;
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;
import com.shopping.dao.UserDao;
import com.shopping.model.User;
import com.shopping.util.DbUtil;
public class LoginServlet extends HttpServlet{
DbUtil db=new DbUtil();
UserDao userDao=new UserDao();
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("password");
Connection con=null;
try {
User user=new User(username,password);
con=db.getCon();
User currentUser=userDao.login(con, user);
if(currentUser==null){
//System.out.println("no");
request.setAttribute("error", "用户名或者密码错误");
request.setAttribute("username", username);
request.setAttribute("password", password);
request.getRequestDispatcher("login.jsp").forward(request, response);
}else{
//System.out.println("yes");
HttpSession session=request.getSession();
session.setAttribute("currentUser",currentUser);
response.sendRedirect("main.jsp");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
设置好Servlet的类文件后需要配置xml,代码如下。
The Shopping
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
LoginServlet
com.shopping.web.LoginServlet
LoginServlet
/login
最后进行主页面的开发,创建jsp页面。需要注意的是action的值是xml的
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
网络在线商城登陆界面
最后一个为了优化,更好的可视化,一个登录成功的验证页面,如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
Insert title here
登录成功
当前用户:${currentUser.nameId}
当前密码:${currentUser.memberPassword}
工程截图: