概述
servlet的一个小项目(六)
ps:这里的代码用到了韩顺平老师的servlet代码。
//欢迎界面
//用户验证servlet
//登录界面
package com.tsinghua;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
public class Wel extends HttpServlet {
//处理get请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){
//业务逻辑
Connection ct=null;
PreparedStatement ps=null;
ResultSet rs=null;
//业务逻辑
try {
//从session中得到用户名
HttpSession hs=req.getSession(true);
String myName=(String)hs.getAttribute("uname");
String name="";
String passwd="";
if(myName==null){
//如果session中没有用户信息,再看看有没有cookie信息
//从客户端得到所有cookie信息
Cookie [] allCookies=req.getCookies();
int i=0;
//如果allCookies不为空...
if(allCookies!=null){
//从中取出cookie
for(i=0;i<allCookies.length;i++){
//依次取出
Cookie temp=allCookies[i];
if(temp.getName().equals("myname")){
//得到cookie的值
name=temp.getValue();
}
else if(temp.getName().equals("mypasswd")){
passwd=temp.getValue();
}
}
System.out.println ("myname="+name+" pas="+passwd);
if(!name.equals("")&&!passwd.equals("")){
//到logincl去验证
res.sendRedirect("loginCl?usrename="+name
+"&passwd="+passwd);
return;
}
}
//返回登录界面
res.sendRedirect("login?info=error1");
return ;
}
//解决中文乱码
res.setCharacterEncoding("gbk");
PrintWriter pw=res.getWriter();
pw.println("<body bgcolor=#CED3FF>");
pw.println("<img src=imgs/1.GIF> 欢迎您:"+myName+"<img src=imgs/me.gif><hr><center>");
pw.println("<h1>管理用户</h1>");
//做个超链接
pw.println("<br><a href=login>返回重新登录</a>");
//添加网页访问次数的功能
//==================分页的功能====================
int pageSize=3;//一页显示几条记录
int pageNow=1;//希望显示第几页
//动态的接受pageNow
//这个是网页传递过来的。
String sPageNow=req.getParameter("pageNowok");
if(sPageNow!=null){
pageNow=Integer.parseInt(sPageNow);
}
//调用UserBeanCl
UserBeanCl ubc=new UserBeanCl();
ArrayList al=ubc.getResultByPage(pageNow,pageSize);
pw.println("<table border=1>");
pw.println("<tr bgcolor=pink><th>id</th><th>name</th><th>passwd</th><th>mail</th><th>grade</th><th>修改用户</th><th>删除用户</th></tr>");
//定义一个颜色数组
String [] mycol={"silver","pink"};
//这个循环过后,ResultSet就华丽的传到ArrayList中了。
//注意,这里的al.size()的值就是page中的条目数量。
//因为是现显示现查,所以那个传过来的rs就应该是pagecount的条目数。
//在UserBeanCl这个文件中,有这样一行:
//ps=ct.prepareStatement("select top "+pageSize+" * from users where userId not in
//(select top "+pageSize*(pageNow-1)+" userId from users)");
//上面这这个查询的语句是除去(除去当前页),之前的页数*条目数的条目,我再拿出来pagesize个条目
//所以现在的结果集也就pagesize个条目。
//控制每页显示的条目是在这里
for(int i=0;i<al.size();i++){
UserBean ub=(UserBean)al.get(i);
pw.println("<tr bgcolor="+mycol[i%2]+">");
pw.println("<td>"+ub.getUserId()+"</td>");
pw.println("<td>"+ub.getUserName()+"</td>");
pw.println("<td>"+ub.getPasswd()+"</td>");
pw.println("<td>"+ub.getMail()+"</td>");
pw.println("<td>"+ub.getGrade()+"</td>");
pw.println("<td><a href=Update?uId="+ub.getUserId()+"&uName="+ub.getUserName()+"&uPass="+ub.getPasswd()+"&uMail="+ub.getMail()+"&uGrade="+ub.getGrade()+">修改用户</a></td>");
//你看这里,点击修改用户之后,信息是这么直接传过去的。
//因为是要修改,所以值传递要多一点。
pw.println("<td><a href=DelUserCl?userid="+ub.getUserId()+" onclick="return window.confirm('确认删除')">删除用户</a></td>");
pw.println("</tr>");
//删除用户就简单的多了,直接传递一个id,弹出一个确认的框就行。
}
pw.println("</table>");
//上一页
//下面几行是控制页码的超链接。
if(pageNow!=1)
pw.println("<a href=wel?pageNowok="+(pageNow-1)+">上一页</a>");
//显示超链接
for (int i=pageNow; i<=pageNow+4; i++){
pw.println("<a href=wel?pageNowok="+i+">"+i+"</a>");
}
int pageCount=ubc.getPageCount();
//下一页
if(pageNow!=pageCount)
pw.println("<a href=wel?pageNowok="+(pageNow+1)+">下一页</a><br>");
pw.println("该网页被访问了"+this.getServletContext().getAttribute("visitTimes").toString()+"次<br>");
//指定跳转到某页
//这里实际是一个表单
//你需要考虑问题:输入的页数过大?,输入不是数值又怎么办?
pw.println("<form action=wel>");
pw.println("<input type=text name=pageNowok>");
pw.println("<input type=submit value=go>");
pw.println("</from><br>");
pw.println("您的ip="+req.getRemoteAddr()+"<br>");
pw.println("您的机器名="+req.getRemoteHost()+"<br>");
pw.println("</center><hr><img src=imgs/mylogo.gif>");
pw.println("</body>");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//处理post请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
最后
以上就是威武台灯为你收集整理的servlet的一个小项目(六)的全部内容,希望文章能够帮你解决servlet的一个小项目(六)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复