接笔记一,涉及struts2登录的

记得,struts2的要在web.xml里面写struts的filter否则,,哼哼!

/login/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>个人信息管理系统</title>
</head>
<body bgcolor="#aabbccdd">
  <s:form action="loginAction" method="post">
   <table align="center" width="100%">
    <tr>
    
     <td colspan="2" align="center" >
     <h1>个人信息管理系统</h1>
     </td>
    </tr>
    <tr>
     <td colspan="2">
     <hr align="center" width="100%" size="8" color="white"/>
     </td>
    </tr>
    <tr>
      <td width="30%" align="center">
        <img src="<%=request.getContextPath()%>/image/6801.jpg" alt="sign" height="280"/>
      </td>
      <td width="70%">
         <table border="4" align="center" >
        
    
         <tr>
            <td>
              <s:textfield name="userName" label="登录名" size="16"/>
             </td>
          </tr>
         
         <tr>
           <td>
            <s:password name="password" label="密码" size="17"/>
           </td>
         </tr>
         <tr>
           <td colspan="2" align="center">
            <input type="submit" value="确定"/>&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="reset" value="清空"/>
            </td>
          </tr>
           <tr>
            <td colspan="2" align="center">
             <s:a href="/login/register.jsp">注册</s:a>
            </td>
            </tr>
        </table>
    </td>
   </tr>
  </table>
</s:form>
       
</body>

</html>

------------------------

loginAction

package edu.login.Action;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
import DBJavaBean.DB;


public class loginAction extends ActionSupport  implements ServletRequestAware{
private static final long serialVersionUID = 1L;
  private String userName;
  private String password;
  private HttpServletRequest request;
  private ResultSet rs;
  private String message="error";
@Override
public void setServletRequest(HttpServletRequest request) {

this.request=request;
}
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 HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
   


@Override
public void validate() {
if(this.getUserName()==null||this.getUserName().length()==0)
{
addFieldError("userName", "请输入用户名");
}
else{
try {
DB mysql=new DB();
rs=mysql.selectLogin(request, getUserName(), getPassword());
if(!rs.next())
{
addFieldError("userName","此用户尚未注册");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(this.getPassword()==null||this.getPassword().length()==0)
{
addFieldError("password", "请输入密码");
}
else{
try {
DB mysql=new DB();
rs=mysql.selectMess(request, this.getUserName());
if(!rs.next())
{
addFieldError("password","密码输入错误");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


public String execute()throws Exception
{
DB mysql=new DB();
String add=mysql.addList(request, getUserName());
if(add.equals("ok"))
{
message="success";
}
return message;

}
}


DB.java

package DBJavaBean;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import JavaBean.UserNameBean;

和数据库有关的像statement,connection这种单独设变量因为下面会多次用到

尤其注意request每一个和用户数据有关的方法都有request作为参数
public class DB implements ServletRequestAware {                    
    
private String driverName="com.mysql.jdbc.Driver";
private String url="jdbc:mysql://localhost:3309/personal?userUnicode=true&characterEncoding=gbk";
private String user="root";
private String password="admin";
private Connection con=null;
private Statement st=null;
private ResultSet rs=null;
private HttpServletRequest request;
@Override
public void setServletRequest(HttpServletRequest arg0) {
request=arg0;


}
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getCon() {
return con;
}
public void setCon(Connection con) {
this.con = con;
}
public Statement getSt() {
return st;
}
public void setSt(Statement st) {
this.st = st;
}
public ResultSet getRs() {
return rs;
}
public void setRs(ResultSet rs) {
this.rs = rs;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public DB(String driverName, String url, String user, String password, Connection con, Statement st, ResultSet rs,
HttpServletRequest request) {
super();
this.driverName = driverName;
this.url = url;
this.user = user;
this.password = password;
this.con = con;
this.st = st;
this.rs = rs;
this.request = request;
}
public DB() {
super();
}

//----------------------------------------
//完成数据库连接,并生成容器并返回
public Statement getStatement()
{
try {
Class.forName(getDriverName());
con=DriverManager.getConnection(getUrl(),getUser(),getPassword());
return con.createStatement();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}
return null;
}


//查询个人信息,返回结果集
public ResultSet selectMess(HttpServletRequest request,String userName)
{
try {
String sql="select * from user where userName='"+userName+"'";
st=getStatement();
return st.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

//查询登录名和密码是否存在

public ResultSet selectLogin(HttpServletRequest request,String userName,String password)
{
try {
String sql="select * from user where userName='"+userName+"' and password='"+password+"'";
st=getStatement();
return st.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

//吧登录用户的信息存到session对象中
public String myLogin(HttpServletRequest request,String userName)
{
try {
ArrayList listName=null;
HttpSession session=request.getSession();
listName=new ArrayList();
rs=selectMess(request,userName);
if(rs.next())
{
UserNameBean mess=new UserNameBean();
mess.setUserName(rs.getString("userName"));
mess.setPassword(rs.getString("password"));
listName.add(mess);
session.setAttribute("userName", listName);
}
else{
session.setAttribute("userName", listName);
}
return "ok";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}


//将所有与用户相关的信息都加到session里
public String addList(HttpServletRequest request,String userName)
{
String sure=null;
String login=myLogin(request,userName);

if(login.equals("ok"))
{
sure="ok";
}
return sure;
}
}


-------------------------------------------------------

登录后的主页面

main.jsp   (框架链入型,无《body》标签)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>个人信息管理系统</title>
</head>


  <frameset cols="20%, *" >
    <frame src="<%=request.getContextPath()%>/mainFrame/left.jsp" name="left" scrolling="no">
     <frameset rows="20%,10%,*">
      <frame src="<%=request.getContextPath()%>/mainFrame/top.jsp" name="top" scrolling="no">
      <frame src="<%=request.getContextPath()%>/mainFrame/toop.jsp" name="toop" scrolling="no">
      <frame src="<%=request.getContextPath()%>/mainFrame/about.jsp" name="main" scrolling="no">
      </frameset>
  </frameset>
</html>


toop.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s"  uri="/struts-tags"%>
<%@ page import="JavaBean.UserNameBean" %>
 <%@ page import="java.util.*" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="#ccceee">
 <%
   String loginname=null;
   
   ArrayList login=(ArrayList)session.getAttribute("userName");     //在DB的方法中将与用户有关的都打包到userName中了,所以下面有一个UserNameBean将它们具体出来

  
   if(login==null||login.size()==0)
   {
  loginname="little sun";
   }
   else{
  for(int i=login.size()-1;i>=0;i--)
  {
  UserNameBean nm=(UserNameBean)login.get(i);       //用到这个Bean可以在后面更好的调用信息,注意一下,强制类型转换是括号括类型
  loginname=nm.getUserName();
  }
   }
 %>
 <table width="100%" align="right" bgcolor="blue">
  <tr height="10" bgcolor="gray" align="center">
    <td>你好,<%=loginname %></td>
     <td><a>个人信息管理</a></td>
     <td><a>通讯录管理</a></td>
     <td><a>个人文件管理</a></td>
     <td><a href="<%=request.getContextPath()%>/login/index.jsp">退出系统</a></td>
   </tr>
   </table>
  


</body>
</html>

left.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body  bgcolor="#ccceee">
   <table>
   <tr align="center">
    <td>
    <img src="<%=request.getContextPath()%>/image/111.jpg"  height="600" width="200">
    </td>
   </tr>
   </table> 
</body>
</html>

top.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="#ccceee">
 <table width="100%" align="center">
  <tr align="center">
   <td align="center">
     <h1>
       <font color="blue">欢迎使用个人信息管理系统</font>
      </h1>
      </td>
      </tr>
      </table>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值