韩顺平 课件 笔记 j2ee视频实战教程jsp第5讲.docx
《韩顺平 课件 笔记 j2ee视频实战教程jsp第5讲.docx》由会员分享,可在线阅读,更多相关《韩顺平 课件 笔记 j2ee视频实战教程jsp第5讲.docx(38页珍藏版)》请在冰豆网上搜索。
韩顺平课件笔记j2ee视频实战教程jsp第5讲
第五讲
1\本讲主要内容:
(一)美化管理系统界面网页
这种不好的mvc架构,通常一个view层又一个controller来控制…..
这是很好的mvc架构…….
通过标志位来告诉controller要干什么…
给方法加注释
/**
*/
就会变成
/**
*1
*/
在1出按@既可以得出相关要注视的内容..
附代码:
LoginCl.java
//这是一个控制器,主要完成对用户身份的验证
//本身并不实际完成身份验证的业务逻辑,而是去调model的业务逻辑完成对数据处理...
packagecom.hao.controller;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.ArrayList;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.hao.model.*;
publicclassLoginClextendsHttpServlet{
/**
*ThedoGetmethodoftheservlet.
*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.
*
*@paramrequesttherequestsendbytheclienttotheserver
*@paramresponsetheresponsesendbytheservertotheclient
*@throwsServletExceptionifanerroroccurred
*@throwsIOExceptionifanerroroccurred
*/
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//得到用户名和密码
Stringusername=request.getParameter("username");
//解决无法从数据库中读取中文的解决方法
username=newTools().getNewStr(username);
Stringpassword=request.getParameter("password");
//使用模型UserBeanCl,完成对用户身份的验证
//创建UserBeanCl对象
UserBeanClubc=newUserBeanCl();
//调用方法
if(ubc.checkUser(username,password))
{
//登陆成功!
!
//这种跳转为转向
//response.sendRedirect("Wel.jsp");
//在跳转到Wel.jsp页面前就要把要显示的数据就要准备好!
!
!
ArrayListal=ubc.fenye
(1);
intpageCount=ubc.getPageCount();
//将alpageCount放入request中...
request.setAttribute("al",al);
request.setAttribute("pageCount",pageCount);
request.setAttribute("pageNow",1);
//因为sendRedirect跳转的效率不高,在公司里常常用转发的方法....
//这种转发效率高,并且request中的对象还可以在下个页面中使用
//将用户名放入session以备后用
request.getSession().setAttribute("username",username);
request.getSession().setMaxInactiveInterval(300);
//在本案例中request对象指的是上面的两句话result和pageCount
request.getRequestDispatcher("main.jsp").forward(request,response);
}
else
{
//登录失败!
!
!
//response.sendRedirect("Login.jsp");
request.getRequestDispatcher("Login.jsp").forward(request,response);
}
}
/**
*ThedoPostmethodoftheservlet.
*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.
*
*@paramrequesttherequestsendbytheclienttotheserver
*@paramresponsetheresponsesendbytheservertotheclient
*@throwsServletExceptionifanerroroccurred
*@throwsIOExceptionifanerroroccurred
*/
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doGet(request,response);
}
}
UserClServlet.java
//处理用户的分页显示
//也用于处理用户的增删改
packagecom.hao.controller;
importjava.io.IOException;
importcom.hao.model.*;
importjava.io.PrintWriter;
importjava.util.ArrayList;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassUserClServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//创建一个UserBeanCl方法,供全局调用!
!
!
UserBeanClubc=newUserBeanCl();
//得到标志位,判断进行不同的操作..
Stringflag=request.getParameter("flag").toString();
//情况一:
分页管理
if(flag.equals("fenye"))
{
try
{
//得到pageNow
intpageNow=Integer.parseInt(request.getParameter("pageNow").toString());
//在跳转到Wel.jsp页面前就要把要显示的数据就要准备好!
!
!
ArrayListal=ubc.fenye(pageNow);
intpageCount=ubc.getPageCount();
//将alpageCount放入request中...
//说明这里写成setAttribute那么在下也就要用getAttribute来接受
//如果是参数就要用getParameter来接受,不能搞混咯!
!
!
!
request.setAttribute("pageCount",pageCount+"");
request.setAttribute("al",al);
request.setAttribute("pageNow",pageNow);
//重新跳回Wel.jsp
request.getRequestDispatcher("Wel.jsp").forward(request,response);
}
catch(Exceptionex)
{
ex.printStackTrace();
}
finally
{
//System.out.println("这是UserClServlet的测试finally");
}
}
//情况二:
删除用户
elseif(flag.equals("delUser"))
{
StringuserId=request.getParameter("userId");
if(ubc.delUser(userId))
{
request.getRequestDispatcher("Succ.jsp").forward(request,response);
}
else
{
request.getRequestDispatcher("Fail.jsp").forward(request,response);
}
}
//情况三:
添加用户
elseif(flag.equals("addUser"))
{
//得到用户输入的信息..
Stringusername=request.getParameter("username");
Stringpassword=request.getParameter("password");
Stringemail=request.getParameter("email");
Stringgrade=request.getParameter("grade");
if(ubc.addUser(username,password,email,grade))
{
request.getRequestDispatcher("Succ.jsp").forward(request,response);
}
else
{
request.getRequestDispatcher("Fail.jsp").forward(request,response);
}
}
//情况四:
添加用户
elseif(flag.equals("updateUser"))
{
//得到用户输入的信息..
Stringuserid=request.getParameter("userid");
Stringusername=request.getParameter("username");
Stringpassword=request.getParameter("password");
Stringemail=request.getParameter("email");
Stringgrade=request.getParameter("grade");
if(ubc.updateUser(userid,username,password,email,grade))
{
request.getRequestDispatcher("Succ.jsp").forward(request,response);
}
else
{
request.getRequestDispatcher("Fail.jsp").forward(request,response);
}
}
}
}
ConDB.java
//当一段代码被使用三次以上就应该把这样的代码封装到一个函数里面
packagecom.hao.model;
importjava.sql.*;
publicclassConDB{
privateConnectionct=null;
publicConnectiongetct()
{
Connectioncon=null;
try
{
//1加载驱动
Stringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
Stringurl="jdbc:
sqlserver:
//127.0.0.1:
1433;databaseName=spdb";
Class.forName(driver);
con=DriverManager.getConnection(url,"sa","hao123");
}
catch(Exceptionex)
{
ex.printStackTrace();
}
finally
{
returncon;
}
}
}
Tools.java
packagecom.hao.model;
publicclassTools{
//提供一个方法,将乱码转换成gb2312...
publicstaticStringgetNewStr(Stringinput)
{
Stringresult="";
try
{
result=newString(input.getBytes("iso-8859-1"),"gb2312");
}
catch(Exceptionex)
{
ex.printStackTrace();
}
returnresult;
}
}
UserBean.java
//这是一个javaBean对应Users表数据.
//表中有几个字段,那么这个java中就有多少个私有属性
//他的一个实例代表一个USers表中的一条记录.
packagecom.hao.model;
publicclassUserBean{
privateintuserId;
privateStringuserName;
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetPasswd(){
returnpasswd;
}
publicvoidsetPasswd(Stringpasswd){
this.passwd=passwd;
}
publicStringgetEmail(){
returnemail;
}
publicvoidsetEmail(Stringemail){
this.email=email;
}
publicintgetGrade(){
returngrade;
}
publicvoidsetGrade(intgrade){
this.grade=grade;
}
privateStringpasswd;
privateStringemail;
privateintgrade;
publicvoidsetUserId(intuserId){
this.userId=userId;
}
publicintgetUserId(){
returnuserId;
}
}
UserBeanCl.java
//这是一个处理类,有些人喜欢把它叫做BObusinessobject
//主要是封装users表的各种操作[增加\删除\修改\查询].
packagecom.hao.model;
importjava.sql.*;
importjava.util.*;
publicclassUserBeanCl{
privateConnectionct=null;
privateStatementsm=null;
privateResultSetrs=null;
privateintpageSize=3;
privateintrowCount=0;//从数据库中得到
privateintpageCount=0;//一共有多少页通过pageSize和rowCount获得.
//修改用户
publicbooleanupdateUser(Stringuserid,Stringusername,Stringpassword,Stringemail,Stringgrade)
{
booleanb=false;
try
{
ct=newConDB().getct();
sm=ct.createStatement();
inta=sm.executeUpdate("updateuserssetusername='"
+username+"',passwd='"+password+"',email='"+email+"',grade='"+grade+"'whereuserId="+userid);
if(a==1)
{
b=true;
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnb;
}
//添加用户
/**
*@authorhaofengli
*@return如果为真,说明添加成功;否则,添加失败
*@paramusername用户名
*@parampassword密码
*/
publicbooleanaddUser(Stringusername,Stringpassword,Stringemail,Stringgrade)
{
booleanb=false;
try
{
ct=newConDB().getct();
sm=ct.createStatement();
inta=sm.executeUpdate("insertintousersvalues('"
+username+"','"+password+"','"+email+"','"+grade+"')");
if(a==1)
{
b=true;
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnb;
}
//删除用户
publicbooleandelUser(StringuserId)
{
booleanb=false;
try
{
ct=newConDB().getct();
sm=ct.createStatement();
inta=sm.executeUpdate("deletefromuserswhereuserid='"+userId+"'");
if(a==1)
{
b=true;
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnb;
}
//得到总页数
publicintgetPageCount()
{
try
{
//得到连接
ct=newConDB().getct();
//3创建Statement
sm=ct.createStatement();
//4查询
rs=sm.executeQuery("selectcount(*)fromusers");
if(rs.next())
{
rowCount=rs.getInt
(1);
//计算pageCount
pageCount=(rowCount+pageSize-1)/pageSize;
}
}
catch(Exceptionex)
{
ex.printStackTrace();
}
finally
{
this.closed();