java se开发web
准备工作:
1.在WebContent WEB-INF lib下添加c3p0-0.9.5.2.jar mchange-common-java-0.2.11.jar ojdbc6.jar
2.java Resources中的src平级的添加c3p0-config.xml
Java Resources
src
三个包
com.hanqi.dao 数据库有关
BankCard.java实体类 属性 getter setter toString 有参构造 无参构造
BankCardDAO.java 功能类 数据库增删改查
DBHelper.java 单例的数据库工具类 返回数据连接 连接池
com.hanqi.service
BankCardService.java 业务逻辑类
com.hanqi.web
CheckLoginServlet.java
MyFilter.java 过滤器
WebContent
Login.jsp 登录界面
Main.jsp 主页面
Login.jsp
Insert title here卡号:密码:
CheckLoginServlet.java
package com.hanqi.web;
import java.io.IOException;
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.hanqi.dao.BankCard;
import com.hanqi.service.BankCardService;/**
* Servlet implementation class CheckLoginServlet*/
public classCheckLoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;/**
* @see HttpServlet#HttpServlet()*/
publicCheckLoginServlet() {
super();//TODO Auto-generated constructor stub
}/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/
protected voiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收参数
String cardid = request.getParameter("cardid");
String password= request.getParameter("password");//对get,post同时有效//cardid = new String(cardid.getBytes("ISO-8859-1"), "UTF-8");//检查参数
if (cardid == null || password == null
|| cardid.trim().equals("")|| password.trim().equals(""))
{
response.getWriter().println("请正确登录");
response.setHeader("refresh", "3;url=Login.jsp");
}else{//验证参数//调用Service层
BankCard bc = newBankCardService().checkLogin(cardid, password);if (bc != null)
{//创建session
HttpSession hs =request.getSession();
hs.setAttribute("bankcard", bc);//跳转
response.sendRedirect("Main.jsp");
}else{
response.getWriter().println("卡号或密码错误" + "cardid =" +cardid);
response.setHeader("refresh", "3;url=Login.jsp");
}
}
}/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/
protected voiddoPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//TODO Auto-generated method stub
doGet(request, response);
}
}
BankCard.java
package com.hanqi.dao;
import java.util.Date;//实体类
public classBankCard {privateString cardID;privateString userID;privateString userName;privateString password;private doublebalance;privateString state;privateDate createTime;publicString getCardID() {returncardID;
}public voidsetCardID(String cardID) {this.cardID =cardID;
}publicString getUserID() {returnuserID;
}public voidsetUserID(String userID) {this.userID =userID;
}publicString getUserName() {returnuserName;
}public voidsetUserName(String userName) {this.userName =userName;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}public doublegetBalance() {returnbalance;
}public void setBalance(doublebalance) {this.balance =balance;
}publicString getState() {returnstate;
}public voidsetState(String state) {this.state =state;
}publicDate getCreateTime() {returncreateTime;
}public voidsetCreateTime(Date createTime) {this.createTime =createTime;
}publicBankCard(String userID, String userName, String password) {
super();this.userID =userID;this.userName =userName;this.password =password;
}publicBankCard() {
super();
}
@OverridepublicString toString() {return "BankCard [cardID=" + cardID + ", userID=" + userID + ", userName=" + userName + ", password=" +password+ ", balance=" + balance + ", state=" + state + ", createTime=" + createTime + "]";
}
}
BankCardDAO.java
package com.hanqi.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;//数据库操作类
public classBankCardDAO {//查//单条查询
publicBankCard getBankCard(String cardid)
{
BankCard rtn= null;//查询
Connection conn = null;
PreparedStatement ps= null;
ResultSet rs= null;try{
conn=DBHelper.getDBHelper().getConnection();
String sql= "select * from t_bankcard where card_id = ?";
ps=conn.prepareStatement(sql);
ps.setString(1, cardid);
rs=ps.executeQuery();if(rs.next())
{
rtn= newBankCard();
rtn.setCardID(cardid);
rtn.setBalance(rs.getDouble("Balance"));
rtn.setCreateTime(rs.getDate("create_time"));
rtn.setPassword(rs.getString("password"));
rtn.setState(rs.getString("state"));
rtn.setUserID(rs.getString("user_id"));
rtn.setUserName(rs.getString("user_name"));
}
}catch(SQLException e) {
e.printStackTrace();
}finally{try{
rs.close();
}catch(SQLException e2) {
}try{
ps.close();
}catch(SQLException e1) {
}try{
conn.close();
}catch(SQLException e) {
}
}returnrtn;
}//增//改//删
}
DBHelper.java
package com.hanqi.dao;
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;//单例模式的数据库工具类//返回数据库连接
public classDBHelper {//1 隐藏默认构造方法
privateDBHelper()
{
}//2 静态实例
private staticDBHelper dh;//3 返回实例的静态方法
public staticDBHelper getDBHelper()
{if (dh == null)
{
dh= newDBHelper();
}returndh;
}private ComboPooledDataSource cpds = new ComboPooledDataSource("helloc3p0");//返回连接的方法
publicConnection getConnection() throws SQLException
{returncpds.getConnection();
}
}
MyFilter.java
package com.hanqi.web;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;/**
* Servlet Filter implementation class MyFilter*/
public classMyFilter implements Filter {/**
* Default constructor.*/
publicMyFilter() {//TODO Auto-generated constructor stub
}/**
* @see Filter#destroy()*/
public voiddestroy() {//TODO Auto-generated method stub
}/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)*/
public voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {//设置编码
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}/**
* @see Filter#init(FilterConfig)*/
public voidinit(FilterConfig fConfig) throws ServletException {//TODO Auto-generated method stub
}
}
BankCardService.java
package com.hanqi.service;
import com.hanqi.dao.BankCard;
import com.hanqi.dao.BankCardDAO;//业务逻辑类
public classBankCardService {//验证登录方法
publicBankCard checkLogin(String cardid, String password)
{
BankCard rtn= null;//得到卡信息
BankCard bc = newBankCardDAO().getBankCard(cardid);if (bc != null)
{//验证数据有效性
if (bc.getState().equals("1")&&bc.getPassword().equals(password))
{
rtn=bc;
}
}returnrtn;
}
}
Main.jsp
Insert title here{out.print("会话超时或未登录");
response.setHeader("refresh", "3;url=Login.jsp");
}else{
BankCard bc=(BankCard)obj;out.print("欢迎登录!" +bc.getUserName());
}%>
java se开发web
准备工作:
1.在WebContent WEB-INF lib下添加c3p0-0.9.5.2.jar mchange-common-java-0.2.11.jar ojdbc6.jar
2.java Resources中的src平级的添加c3p0-config.xml
Java Resources
src
三个包
com.hanqi.dao 数据库有关
BankCard.java实体类 属性 getter setter toString 有参构造 无参构造
BankCardDAO.java 功能类 数据库增删改查
DBHelper.java 单例的数据库工具类 返回数据连接 连接池
com.hanqi.service
BankCardService.java 业务逻辑类
com.hanqi.web
CheckLoginServlet.java
MyFilter.java 过滤器
WebContent
Login.jsp 登录界面
Main.jsp 主页面
Login.jsp
Insert title here卡号:密码:
CheckLoginServlet.java
package com.hanqi.web;
import java.io.IOException;
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.hanqi.dao.BankCard;
import com.hanqi.service.BankCardService;/**
* Servlet implementation class CheckLoginServlet*/
public classCheckLoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;/**
* @see HttpServlet#HttpServlet()*/
publicCheckLoginServlet() {
super();//TODO Auto-generated constructor stub
}/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/
protected voiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收参数
String cardid = request.getParameter("cardid");
String password= request.getParameter("password");//对get,post同时有效//cardid = new String(cardid.getBytes("ISO-8859-1"), "UTF-8");//检查参数
if (cardid == null || password == null
|| cardid.trim().equals("")|| password.trim().equals(""))
{
response.getWriter().println("请正确登录");
response.setHeader("refresh", "3;url=Login.jsp");
}else{//验证参数//调用Service层
BankCard bc = newBankCardService().checkLogin(cardid, password);if (bc != null)
{//创建session
HttpSession hs =request.getSession();
hs.setAttribute("bankcard", bc);//跳转
response.sendRedirect("Main.jsp");
}else{
response.getWriter().println("卡号或密码错误" + "cardid =" +cardid);
response.setHeader("refresh", "3;url=Login.jsp");
}
}
}/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/
protected voiddoPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//TODO Auto-generated method stub
doGet(request, response);
}
}
BankCard.java
package com.hanqi.dao;
import java.util.Date;//实体类
public classBankCard {privateString cardID;privateString userID;privateString userName;privateString password;private doublebalance;privateString state;privateDate createTime;publicString getCardID() {returncardID;
}public voidsetCardID(String cardID) {this.cardID =cardID;
}publicString getUserID() {returnuserID;
}public voidsetUserID(String userID) {this.userID =userID;
}publicString getUserName() {returnuserName;
}public voidsetUserName(String userName) {this.userName =userName;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}public doublegetBalance() {returnbalance;
}public void setBalance(doublebalance) {this.balance =balance;
}publicString getState() {returnstate;
}public voidsetState(String state) {this.state =state;
}publicDate getCreateTime() {returncreateTime;
}public voidsetCreateTime(Date createTime) {this.createTime =createTime;
}publicBankCard(String userID, String userName, String password) {
super();this.userID =userID;this.userName =userName;this.password =password;
}publicBankCard() {
super();
}
@OverridepublicString toString() {return "BankCard [cardID=" + cardID + ", userID=" + userID + ", userName=" + userName + ", password=" +password+ ", balance=" + balance + ", state=" + state + ", createTime=" + createTime + "]";
}
}
BankCardDAO.java
package com.hanqi.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;//数据库操作类
public classBankCardDAO {//查//单条查询
publicBankCard getBankCard(String cardid)
{
BankCard rtn= null;//查询
Connection conn = null;
PreparedStatement ps= null;
ResultSet rs= null;try{
conn=DBHelper.getDBHelper().getConnection();
String sql= "select * from t_bankcard where card_id = ?";
ps=conn.prepareStatement(sql);
ps.setString(1, cardid);
rs=ps.executeQuery();if(rs.next())
{
rtn= newBankCard();
rtn.setCardID(cardid);
rtn.setBalance(rs.getDouble("Balance"));
rtn.setCreateTime(rs.getDate("create_time"));
rtn.setPassword(rs.getString("password"));
rtn.setState(rs.getString("state"));
rtn.setUserID(rs.getString("user_id"));
rtn.setUserName(rs.getString("user_name"));
}
}catch(SQLException e) {
e.printStackTrace();
}finally{try{
rs.close();
}catch(SQLException e2) {
}try{
ps.close();
}catch(SQLException e1) {
}try{
conn.close();
}catch(SQLException e) {
}
}returnrtn;
}//增//改//删
}
DBHelper.java
package com.hanqi.dao;
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;//单例模式的数据库工具类//返回数据库连接
public classDBHelper {//1 隐藏默认构造方法
privateDBHelper()
{
}//2 静态实例
private staticDBHelper dh;//3 返回实例的静态方法
public staticDBHelper getDBHelper()
{if (dh == null)
{
dh= newDBHelper();
}returndh;
}private ComboPooledDataSource cpds = new ComboPooledDataSource("helloc3p0");//返回连接的方法
publicConnection getConnection() throws SQLException
{returncpds.getConnection();
}
}
MyFilter.java
package com.hanqi.web;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;/**
* Servlet Filter implementation class MyFilter*/
public classMyFilter implements Filter {/**
* Default constructor.*/
publicMyFilter() {//TODO Auto-generated constructor stub
}/**
* @see Filter#destroy()*/
public voiddestroy() {//TODO Auto-generated method stub
}/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)*/
public voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {//设置编码
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}/**
* @see Filter#init(FilterConfig)*/
public voidinit(FilterConfig fConfig) throws ServletException {//TODO Auto-generated method stub
}
}
BankCardService.java
package com.hanqi.service;
import com.hanqi.dao.BankCard;
import com.hanqi.dao.BankCardDAO;//业务逻辑类
public classBankCardService {//验证登录方法
publicBankCard checkLogin(String cardid, String password)
{
BankCard rtn= null;//得到卡信息
BankCard bc = newBankCardDAO().getBankCard(cardid);if (bc != null)
{//验证数据有效性
if (bc.getState().equals("1")&&bc.getPassword().equals(password))
{
rtn=bc;
}
}returnrtn;
}
}
Main.jsp
Insert title here{out.print("会话超时或未登录");
response.setHeader("refresh", "3;url=Login.jsp");
}else{
BankCard bc=(BankCard)obj;out.print("欢迎登录!" +bc.getUserName());
}%>