servlet的一个小项目(六)
ps:这里的代码用到了韩顺平老师的servlet代码。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
//欢迎界面
//用户验证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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复