servlet的一个小项目(六)

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//依次取出
                        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("");

            pw.println("      欢迎您:"+myName+"
"); pw.println("

管理用户

"
); //做个超链接 pw.println("
返回重新登录"
); //添加网页访问次数的功能 //==================分页的功能==================== 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(""); pw.println(""); //定义一个颜色数组 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"2]+">"); pw.println(""); pw.println(""); pw.println(""); pw.println(""); pw.println(""); pw.println(""); //你看这里,点击修改用户之后,信息是这么直接传过去的。//因为是要修改,所以值传递要多一点。 pw.println(""); pw.println(""); //删除用户就简单的多了,直接传递一个id,弹出一个确认的框就行。 } pw.println("
idnamepasswdmailgrade修改用户删除用户
"+ub.getUserId()+""+ub.getUserName()+""+ub.getPasswd()+""+ub.getMail()+""+ub.getGrade()+"+ub.getUserId()+"&uName="+ub.getUserName()+"&uPass="+ub.getPasswd()+"&uMail="+ub.getMail()+"&uGrade="+ub.getGrade()+">修改用户 +ub.getUserId()+" οnclick=\"return window.confirm('确认删除')\">删除用户
"
); //上一页 //下面几行是控制页码的超链接。 if(pageNow!=1) pw.println("+(pageNow-1)+">上一页"); //显示超链接 for (int i=pageNow; i<=pageNow+4; i++){ pw.println("+i+">"+i+""); } int pageCount=ubc.getPageCount(); //下一页 if(pageNow!=pageCount) pw.println("+(pageNow+1)+">下一页
"
); pw.println("该网页被访问了"+this.getServletContext().getAttribute("visitTimes").toString()+"次
"
); //指定跳转到某页 //这里实际是一个表单 //你需要考虑问题:输入的页数过大?,输入不是数值又怎么办? pw.println("
"); pw.println(""); pw.println(""); pw.println("
"
); pw.println("您的ip="+req.getRemoteAddr()+"
"
); pw.println("您的机器名="+req.getRemoteHost()+"
"
); pw.println("

"
); pw.println(""); } catch (Exception ex) { ex.printStackTrace(); } } //处理post请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } }

你可能感兴趣的:(web成长记)