虽然以前写过一段时间的网站,但是大都是随便写写,并且copy,paste,对于提高也不是很大,所以自己就开始一点点的学习,从最基础的开始,并且希望记录下来这个过程,与大家分享,也便于以后的回顾和复习。
此部分的mvc分的不是很清楚,是属于model 1类型的登录模块,稍后将附mvc模式下的登录模块。
首先是页面部分是比较简单的html代码,主要使用form表格,input输入,比较简单,也是入门级别,本身自己觉得也只是入门,所以需要更多的学习。
login.jsp
<%
String num=request.getParameter("num");
if(num!=null){
if(num.equals("0"))
out.println("<script>confirm('输入的密码有误或输入的用户名不存在!,请确认是否继续')</script>");
}
%>
<body bgcolor="blue">
<center>
用户登录 <br>
<hr>
<form action="LoginC.jsp" method="post">
用户名<input type="text" name="username"><br>
密 码<input type="password" name="password"><br>
<input type="submit" value="登录"> <input type="reset" value="重置">
</form>
</center>
</body>
java代码主要有数据库的连接和一些JavaBean及处理
ConnDB.java
public class ConnDB {
private Connection ct=null;
public Connection getConn(){
try {
Class.forName("com.mysql.jdbc.Driver");
try {
ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/JspTest?user=root&password=123456");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}//数据库的连接
return ct;
}
}
//UserBean.java
public class UserBean {
private int id;
private String username;
private String password;
private String info;
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 getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
UserBeanCl.java
/**
* 这是主要对User进行的各种操作
* @author yu
*
*/
public class UserBeanCl {
Connection ct=null;
Statement st=null;
ResultSet rs=null;
private int pageSize=3;//每页显示的记录数
private int pageCount=0;//页数
private int rowCount=0;//总记录条数
public void Close(){ //关闭以打开的数据库
try {
if(rs!=null){
rs.close();
rs=null;
}
if(st!=null){
st.close();
st=null;
}
if(ct!=null){
ct.close();
ct=null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean CheckUser(String u,String p){ //验证用户合法性
boolean b=false;
try{
ct=new ConnDB().getConn();
Statement st=ct.createStatement();
String sql="select password from users where username="+u+" ";
rs=st.executeQuery(sql);
if(rs.next()){
if(rs.getString(1).equals(p)){
//合法用户
b=true;
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.Close();
}
return b;
}
public int getPageCount(){
try {
ct=new ConnDB().getConn();
st=ct.createStatement();
String sql="select count(*) from users ";
rs=st.executeQuery(sql);
if(rs.next()){
rowCount=rs.getInt(1);
}
if(rowCount%pageSize==0)
pageCount=rowCount/pageSize;
else
pageCount=rowCount/pageSize+1;
} catch (Exception e) {
e.printStackTrace();
}finally{
this.Close();
}
return pageCount;
}
public int getRowCount(){
try {
ct=new ConnDB().getConn();
st=ct.createStatement();
String sql="select count(*) from users ";
rs=st.executeQuery(sql);
if(rs.next()){
rowCount=rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
this.Close();
}
return rowCount;
}
//得到用户信息
public ArrayList getUserByPage(int pageNow){
ArrayList al=new ArrayList();
try {
ct=new ConnDB().getConn();
st=ct.createStatement();
String sql_1="select * from users limit "+pageSize*(pageNow-1)+", "+pageSize+" ";
ResultSet rs=st.executeQuery(sql_1);
while(rs.next()){
UserBean ub=new UserBean();
ub.setId(rs.getInt(1));
ub.setUsername(rs.getString(2));
ub.setPassword(rs.getString(3));
ub.setInfo(rs.getString(4));
al.add(ub);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
this.Close();
}
return al;
}
}
login.jsp页面的信息通过logincl.jsp进行处理:
<body>
<%//验证用户名和密码是否正确
String username=request.getParameter("username");
String pass=request.getParameter("password");
UserBeanCl us=new UserBeanCl();//通过User验证用户名和密码
if(us.CheckUser(username, pass)){
response.sendRedirect("Wel.jsp?u="+username+"");
}else
response.sendRedirect("Login.jsp?num=0");
%>
<br>
</body>
Wel.jsp主要显示数据库中的User信息,其中包括分页技术(比较简单的分页,适合数据较小时使用,大型数据不适合)
<body>
<%
String u=request.getParameter("u");
%>
恭喜<%=u %> !登录成功!<br>
<%
int pageNow=1;//希望显示页数
String pageNow_s=request.getParameter("pageNow");
if(pageNow_s!=null)
pageNow=Integer.parseInt(pageNow_s);//获取用户需要显示的页数
int pageCount=new UserBeanCl().getPageCount();
int rowCount=new UserBeanCl().getRowCount();
%>
<a href="Login.jsp">返回登录页面</a>
<hr>
<h1>用户信息</h1>
<table border="1">
<tr><td>用户名</td><td>用户密码</td><td>信息</td></tr>
<!-- 以下通过arrayList进行读取数据信息,通过pageNow获取分页的信息 -->
<%
UserBeanCl ubc=new UserBeanCl();
ArrayList al=ubc.getUserByPage(pageNow);
for(int i=0;i<al.size();i++){
UserBean ub=(UserBean)al.get(i);
%>
<tr><td><%=ub.getUsername() %></td><td><%=ub.getPassword() %></td><td><%=ub.getInfo() %></td></tr>
<%} %>
<% out.print("当前为第"+pageNow+"页,共"+rowCount+"条记录");%>
</table>
<% if(pageNow!=1){
out.print("<a href='Wel.jsp?pageNow=1&u="+u+"'>首页</a>");
out.print("<a href='Wel.jsp?pageNow="+(pageNow-1)+"&u="+u+"'>上一页</a>");
}%>
<%
for(int i=1;i<=pageCount;i++)
out.print("<a href='Wel.jsp?pageNow="+i+"&u="+u+"'>["+i+"]</a>");
%>
<% if(pageNow!=pageCount){
out.print("<a href='Wel.jsp?pageNow="+(pageNow+1)+"&u="+u+"'>下一页</a>");
out.print("<a href='Wel.jsp?pageNow="+pageCount+"&u="+u+"'>尾页</a>");
}%>
</body>
整体是在看完韩顺平老师的教程后编写,很多东西都是基础,除此之外在学习javaweb时还要有一定的css,javascript,http协议,数据库之类的知识,而java基础更是十分的重要,所以在不断的学习中。持续更新吧,,,