sql-(test)

CREATE TABLE EMP
       (EMPNO NUMERIC(4) NOT NULL PRIMARY KEY,
        ENAME VARCHAR(10),
        JOB VARCHAR(9),
        MGR NUMERIC(4),
        HIREDATE DATE,
        SAL NUMERIC(7, 2),
        COMM NUMERIC(7, 2),
        DEPTNO NUMERIC(2),
        VERSIONNO NUMERIC(8));
INSERT INTO EMP VALUES (75616, '张经',  'MANAGER',   7839,
        '1981-04-02',  8975, NULL, 20, 0);
INSERT INTO EMP VALUES (7369, '张三',  'CLERK',     7902,
        '1980-12-17',  8100, NULL, 20, 0);
INSERT INTO EMP VALUES (7499, 'ALLEN',  'SALESMAN',  7698,
        '1981-02-20', 1600,  300, 30, 0);
INSERT INTO EMP VALUES (7521, 'WARD',   'SALESMAN',  7698,
        '1981-02-22', 7250,  500, 30, 0);
INSERT INTO EMP VALUES (7566, '张亿',  'MANAGER',   7839,
        '1981-04-02',  8975, NULL, 20, 0);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN',  7698,
        '1981-09-28', 1250, 1400, 30, 0);
INSERT INTO EMP VALUES (7698, 'BLAKE',  'MANAGER',   7839,
        '1981-05-01',  2850, NULL, 30, 0);
INSERT INTO EMP VALUES (7782, 'CLARK',  'MANAGER',   7839,
        '1981-06-09',  2450, NULL, 10, 0);
INSERT INTO EMP VALUES (7788, 'SCOTT',  'ANALYST',   7566,
        '1982-12-09', 3000, NULL, 20, 0);
INSERT INTO EMP VALUES (7839, 'KING',   'PRESIDENT', NULL,
        '1981-11-17', 5000, NULL, 10, 0);
INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN',  7698,
        '1981-09-08',  1500,    0, 30, 0);
INSERT INTO EMP VALUES (7876, 'ADAMS',  'CLERK',     7788,
        '1983-01-12', 9100, NULL, 20, 0);
INSERT INTO EMP VALUES (7900, 'JAMES',  'CLERK',     7698,
        '1981-12-03',   3950, NULL, 30, 0);
INSERT INTO EMP VALUES (7902, 'FORD',   'ANALYST',   7566,
        '1981-12-03',  3000, NULL, 20, 0);
INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK',     7782,
        '1982-01-23', 1300, NULL, 10, 0);
insert  into emp values(7955, 'SMITH',  'CLERK',     7902,
        SYSDATE,  6800, 55, 20, 0);
insert  into emp values(7755, 'SMITH',  'CLERK',     7902,
        SYSDATE,  7750, 55, 40, 0);
insert  into emp values(7951, 'SMITH',  'CLERK',     7902,
        SYSDATE,  8190, 55, 40, 0);
COMMIT;
CREATE TABLE DEPT
       (DEPTNO NUMERIC(2) NOT NULL PRIMARY KEY,
        DNAME VARCHAR(14),
        LOC VARCHAR(13),
        VERSIONNO NUMERIC(8));

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK', 0);
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS', 0);
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO', 0);
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON', 0);
COMMIT;

分别在ORACLE和MYSQL下查出第二名工资高的全部信息?
select   *  from emp
       where sal in (select max(sal) sal from emp
where sal < (select max(sal) from emp)
) ;
比如查询scott.emp表的用户SAL排序信息每个部门的第二名工资
SELECT deptno, ename,
           ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC) seq
      FROM emp
          where seq=2;
/**
SQL> SELECT deptno, ename,
           ROW_NUMBER () OVER(PARTITION BY deptno ORDER BY sal DESC) seq
      FROM emp;

    DEPTNO ENAME             SEQ
---------- ---------- ----------
        10 KING                1
        10 CLARK               2
        10 MILLER              3
        20 SCOTT               1
        20 FORD                2
        20 JONES               3
        20 ADAMS               4
        20 SMITH               5
        30 BLAKE               1
        30 ALLEN               2
        30 TURNER              3
        30 WARD                4
        30 MARTIN              5
        30 JAMES               6

14 rows selected.

再结合其他函数进行一下行列转换:

SQL> select deptno,
    max(decode(seq,1,ename,null)) highest,
    max(decode(seq,2,ename,null)) second,
    max(decode(seq,3,ename,null)) third
    from (
    select deptno,ename,
    row_number() over(partition by deptno order by sal desc) seq
    from emp)
   where seq <=3 group by deptno
   /

    DEPTNO HIGHEST    SECOND     THIRD
---------- ---------- ---------- ----------
        10 KING       CLARK      MILLER
        20 SCOTT      FORD       JONES
        30 BLAKE      ALLEN      TURNER

*/




CREATE TABLE DEP
       (DEPID VARCHAR(8) NOT NULL PRIMARY KEY,
         DEPNAME VARCHAR(60),
         PID VARCHAR(8),
        VERSIONNO NUMERIC(8));


INSERT INTO DEP VALUES ('101510', '赤壁赤马县港营业所', '1015', 0);
INSERT INTO DEP VALUES ('10151011', '赤湖镇港营业所', '101510', 0);
INSERT INTO DEP VALUES ('1015', '赤壁市供电公司',   '10', 0);
INSERT INTO DEP VALUES ('10', '省电力',NULL, 0);
INSERT INTO DEP VALUES ('101511', '赤壁赤兔港营业所', '1015', 0);
INSERT INTO DEP VALUES ('101010', '崇观营业所', '1010', 0);
INSERT INTO DEP VALUES ('1010', '崇观供电公司',   '10', 0);
COMMIT;
select d1.DEPID AS 部门编号,
d1.depname  AS 部门名,
d2.depname  AS 上级部门名
from dep AS d1 left join dep AS d2 on d2.depid =d1.pid

select d1.depid , d1.depname AS 部门名,d2.depname AS上级部门名
      from dep AS d1 left join dep AS d2 on d2.depid =d1.pid
select depname 部门名,(select depname from dep AS inDep WHERE inDep.depid=outDep.pid) 上级部门名 from dep AS outDep
select * from dep

例如设备有 A1,A2,A3,A4  其中A4没加油

现有一表数据如下
设备  加油量    加油日期
CREATE TABLE MACHINERY
       (MACHINE_NO VARCHAR(20) NOT NULL ,
        NAME VARCHAR(20) NOT NULL ,
        OIL NUMERIC(5,2),
        OP_DATE DATE,
        VERSIONNO NUMERIC(8));

insert into MACHINERY values('AA','AAcar',10,'2009-10-01',0);
insert into MACHINERY values('BB','BBcar',20,'2009-10-02',0);
insert into MACHINERY values('CC','CCcar',30,'2009-10-03',0);

insert into MACHINERY values('AA','AAcar',10,'2009-10-05',0);
insert into MACHINERY values('BB','BBcar',20,'2009-10-07',0);
insert into MACHINERY values('CC','CCcar',30,'2009-10-08',0);

insert into MACHINERY values('AA','AAcar',10,'2009-10-11',0);
insert into MACHINERY values('BB','BBcar',20,'2009-10-22',0);
insert into MACHINERY values('CC','CCcar',30,'2009-10-13',0);

insert into MACHINERY values('AA','AAcar',10,'2009-10-25',0);
insert into MACHINERY values('BB','BBcar',20,'2009-10-27',0);
insert into MACHINERY values('CC','CCcar',30,'2009-10-18',0);



insert into MACHINERY values('DD','DDcar',0,'2009-10-25',0);
insert into MACHINERY values('DD','EEcar',0,'2009-10-27',0);
insert into MACHINERY values('DD','FFcar',0,'2009-10-18',0);
        COMMIT;

ALTER TABLE MACHINERY ADD NAME VARCHAR(20) 添加名称列
*********************************************************
请写出将表MACHINERY中NAME存在重复的记录都列出来的SQL语句(按NAME排序)

select *
from MACHINERY
where name in (select name from MACHINERY group by name having count(*)>1)
order by name



****************************************************



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
根据emp 和dept 拿到员工个数大于3的部门编号和该部门员工个数 以及该部门所有的员工信息 还有部门的信息
select a.*,b.*
from dept b, emp a, (select DEPTNO ,count(*) cnt from emp group by deptno having count(*)>3) c
where a.deptno = b.deptno
   and a.deptno = c.deptno
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


region  地区   achievement  业绩

CREATE TABLE REGION_ACH
       (ID INT NOT NULL PRIMARY KEY , --合同
        NAME VARCHAR(20) NOT NULL ,--姓名
        ACHIEVEMENT NUMERIC(5,2),-- 业绩
        REGION  CHAR(1), --地区
        VERSIONNO NUMERIC(8));
insert into REGION_ACH values(1,'DDcar',3650,'A',0);
INSERT INTO REGION_ACH VALUES (2, 'ACCOUNTING',4566, 'B', 0);

insert into REGION_ACH values(3,'fD',3450,'A',0);
INSERT INTO REGION_ACH VALUES (4, 'GOG',4866, 'B', 0);
INSERT INTO REGION_ACH VALUES (5, 'HIR',4566, 'C', 0);
INSERT INTO REGION_ACH VALUES (6, 'TG',4266, 'D', 0);
INSERT INTO REGION_ACH VALUES (7, 'BOR',4166, 'D', 0);
INSERT INTO REGION_ACH VALUES (8, 'NIM',4766, 'C', 0);
COMMIT;


第一道:显示出  业绩 大于同一地区平均值的 合同id  姓名 地区 业绩
select T1.* from REGION_ACH T1, ( select avg(ACHIEVEMENT) ACHI ,REGION from REGION_ACH
group by REGION)T2 where T1.ACHIEVEMENT  > T2.ACHI and
T1.REGION = T2.REGION;

第二道:把同一地区的  平均业绩 地区 插入到新表中 (新表只包含两个字段即:平均业绩 地区)
CREATE TABLE REGION_ACH_NWES AS (SELECT avg(R.ACHIEVEMENT) AVG_ACHIEVEMENT,REGION from REGION_ACH group by REGION);

CREATE TABLE REGION_ACH_NWES AS SELECT AVG_ACHIEVEMENT,REGION FROM (SELECT avg(ACHIEVEMENT) AVG_ACHIEVEMENT,REGION FROM REGION_ACH group by REGION);
CREATE TABLE REGION_ACH_NWE (AVG_ACHIEVEMENT INT NOT NULL,REGION CHAR(1));
COMMIT;
这种插入数字和下面一样的只是没有列名:
INSERT INTO REGION_ACH_NWE (AVG_ACHIEVEMENT,REGION) SELECT avg(ACHIEVEMENT) AVG_ACHIEVEMENTI ,REGION
from REGION_ACH group by REGION;
COMMIT;

INSERT INTO REGION_ACH_NWE SELECT avg(ACHIEVEMENT) AVG_ACHIEVEMENTI ,REGION
from REGION_ACH group by REGION;
COMMIT;
SELECT * FROM REGION_ACH_NWE

LEFT JOIN 多表关联用法:
select * from biao1 as a left join biao2 as b on a.字段=b.字段 left join biao3 as c on a.ziduan=c.ziduan where 条件



**********************************************
一张表包括出库和入库状态:
货品名字 出入库 数量
A 出库 100
A 入库 200
A 出库 null


求商品A的库存总数 入库减去出库
我当时是在MYSQL环境下写的
不知道怎么处理空值


mysql> select * from t_bllizard;
+-------+------+------+
| marno | mflg | qty |
+-------+------+------+
| A | I | 200 |

CREATE TABLE BLLIZARD (MARNO VARCHAR(10),
MFLG CHAR(1),
QTY  NUMERIC(6,2)

);
INSERT INTO BLLIZARD VALUES('A','O',100);
INSERT INTO BLLIZARD VALUES('A','I',300);
INSERT INTO BLLIZARD VALUES('A','O',NULL);
COMMIT;
oracle   select sum(decode(mflg,'I',qty))-sum(decode(mflg,'o',nvl(qty,0)))totalqty from BLLIZARD
oracle   select sum(if(mflg='I',qty,-qty))
    -> from t_bllizard
    -> where marno='A'

**********************************************
面试题:
一个表student中有班级classid,学号id,成绩grade
1.计算各个班的平均成绩
2.查找比该班平均成绩高的学生的班级classid,学号id,成绩grade

CREATE TABLE STUDENTCL ( CLASSID VARCHAR(2),
ID VARCHAR(7),
GRADE NUMERIC(7,1)
           
);
INSERT INTO STUDENTCL VALUES('01','9501001',550);
INSERT INTO STUDENTCL VALUES('01','9501002',590);
INSERT INTO STUDENTCL VALUES('01','9501003',575);
INSERT INTO STUDENTCL VALUES('01','9501004',570);
INSERT INTO STUDENTCL VALUES('01','9501005',599);
INSERT INTO STUDENTCL VALUES('02','9502001',585);
INSERT INTO STUDENTCL VALUES('02','9502002',590);
INSERT INTO STUDENTCL VALUES('02','9502003',577);
INSERT INTO STUDENTCL VALUES('02','9502004',579);
INSERT INTO STUDENTCL VALUES('03','9503001',610);
INSERT INTO STUDENTCL VALUES('03','9503002',643);
INSERT INTO STUDENTCL VALUES('03','9503003',615);
INSERT INTO STUDENTCL VALUES('03','9503004',570);
INSERT INTO STUDENTCL VALUES('03','9503005',559);
INSERT INTO STUDENTCL VALUES('04','9504001',530);
INSERT INTO STUDENTCL VALUES('04','9504002',523);
INSERT INTO STUDENTCL VALUES('04','9504003',615);
INSERT INTO STUDENTCL VALUES('04','9504004',580);
INSERT INTO STUDENTCL VALUES('04','9504005',569);
commit;

CREATE TABLE AT
       (A_ID VARCHAR(8) NOT NULL PRIMARY KEY,
         A_NAME VARCHAR(20));

INSERT INTO AT VALUES('101','HAO1O1');
INSERT INTO AT VALUES('102','HAO1O2');         
INSERT INTO AT VALUES('103','HAO1O3');
INSERT INTO AT VALUES('104','HAO1O4');
 INSERT INTO AT VALUES('105','HAO1O5');
INSERT INTO AT VALUES('106','HAO1O6');        
CREATE TABLE BT
       (B_ID VARCHAR(8) NOT NULL PRIMARY KEY,
         A_ID VARCHAR(8),
         B_TEXT VARCHAR(60));    
         
         
INSERT INTO BT VALUES('1','101','HAO1O11');
INSERT INTO BT VALUES('2','101','HAO1O11');
INSERT INTO BT VALUES('3','103','HAO1O33');
INSERT INTO BT VALUES('4','104','HAO1O41');
INSERT INTO BT VALUES('5','104','HAO1O41');
INSERT INTO BT VALUES('6','103','HAO1O33');
INSERT INTO BT VALUES('7','101','HAO1O11');
INSERT INTO BT VALUES('8','101','HAO1O11');
INSERT INTO BT VALUES('9','103','HAO1O33');
INSERT INTO BT VALUES('11','104','HAO1O41');
INSERT INTO BT VALUES('12','101','HAO1O11');
INSERT INTO BT VALUES('13','103','HAO1O33');
INSERT INTO BT VALUES('14','102','HAO1O21');
INSERT INTO BT VALUES('15','102','HAO1O22');
INSERT INTO BT VALUES('16','102','HAO1O22');
INSERT INTO BT VALUES('17','104','HAO1O42');


INSERT INTO BT VALUES('18','104','HAO1O42');
INSERT INTO BT VALUES('19','104','HAO1O42');
INSERT INTO BT VALUES('20','104','HAO1O42');
INSERT INTO BT VALUES('21','105','HAO1O51');
INSERT INTO BT VALUES('22','105','HAO1O52');
INSERT INTO BT VALUES('23','106','HAO1O61');
commit;

select a_id,count(a_id) from bt group by a_id

select a.a_id,a.a_name,co from at a,
(select a_id,count(a_id) co from bt group by a_id) t
 where a.a_id = t.a_id
  order by t.co desc;
 
 select * from
 (select a.a_id, count(b.b_id) m_count
  from at a, bt b
  where A.a_id = B.a_id
  group by a_id) t

  order by t.m_count desc;


/// 航空网的几个航班查询题:

表结构如下:
CREATE TABLE city(id int NOT NULL auto_increment PRIMARY KEY,
city_name VARCHAR(20) );

CREATE TABLE flight(id int NOT NULL auto_increment PRIMARY KEY,
start_cityId int REFERENCES city(id),
end_cityId int references city(id),
start_time TIMESTAMP
 );
 
 insert into city values(null,'北京'),(null,'上海'),(null,'广州'),(NULL,'重庆');
 insert into flight values
 (null,1,2,'2014-09-04 9:17:23'),(null,1,3,'2014-09-04 09:37:23'),(null,1,2,'2014-09-04 10:15:14'),(null,2,3,'2014-09-04 12:11:14'),(null,3,4,'2014-09-04 08:11:14');
 
 //1、查询起飞城市是北京的所有航班,按到达城市的名字排序
 
 // sql -1
  SELECT f.id , f.start_cityId,f.end_cityId,c.city_name from flight f, city c
 WHERE f.start_cityId= (select c1.id from city c1 where c1.city_name = '北京')
AND f.end_cityId= c.id
ORDER BY c.city_name asc
//sql -2
select flight.id,'北京' start_cityid, e.city_name from
                  flight,city e WHERE flight.end_cityid=e.id and flight.start_cityid=(select
                  id from city WHERE city_name='北京');
    //sql -3              
 select flight.id,s.city_name,e.city_name from
                  flight,city s,city e
                  where flight.start_cityid=s.id and s.city_name='北京' and
                  flight.end_cityId=e.id
                  order by e.city_name desc;
2、查询北京到上海的所有航班纪录(起飞城市,到达城市,起飞时间,航班号)
// 方法 1
select flight.id,s.city_name,e.city_name,flight.start_time  from
                  flight,city s,city e
                  where flight.start_cityid=s.id and s.city_name='北京' and
                  flight.end_cityId= e.id
                  and e.city_name='上海'
                  
        // 方法2          
SELECT  f.id, '北京'start_cityId,'上海'end_cityId, f.start_time FROM flight f
WHERE f.start_cityId= (select c1.id from city c1 where c1.city_name = '北京')
 and f.end_cityId= (select c2.id from city c2 where c2.city_name = '上海')
 
  3、查询具体某一天(2005-5-8)的北京到上海的的航班次数
                  select count(*) from
                  (select c1.CityName,c2.CityName,f.StartTime,f.flightID
                  from city c1,city c2,flight f
                  where f.StartCityID=c1.cityID
                  and f.endCityID=c2.cityID
                  and c1.cityName='北京'
                  and c2.cityName='上海'
                  and 查帮助获得的某个日期处理函数(startTime) like '2005-5-8%'
                  mysql中提取日期部分进行比较的示例代码如下:
                  select * from flight where
                  date_format(starttime,'%Y-%m-%d')='1998-01-02'


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.bjsxt.servlet; import com.bjsxt.entity.User; import com.bjsxt.service.UserService; import com.bjsxt.service.impl.UserServiceImpl; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.*; import java.io.IOException; import java.net.URLEncoder; import java.sql.Date; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class UserServlet extends BaseServlet { // @Override // protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // //解决POST表单的中文乱码问题 // request.setCharacterEncoding("utf-8"); // //接收method属性的值 // String methodName = request.getParameter("method"); // // //根据method属性的值调用相应的方法 // if("login".equals(methodName)){ // this.login(request,response); // }else if("register".equals(methodName)){ // this.register(request,response); // }else if("logout".equals(methodName)){ // this.logout(request,response); // } // // } public void show(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取表单的数据 String userId = request.getParameter("userId"); if(userId == null){ userId = ""; } String strAge = request.getParameter("minAge"); int minAge = 0; try{ minAge = Integer.parseInt(strAge); //"12" "abc" }catch(NumberFormatException e){ e.printStackTrace(); } //调用业务层完成查询操作 UserService userService = new UserServiceImpl(); //List<User> userList = userService.findAll(); List<User> userList = userService.find(userId,minAge); //List<User> userList = null; //List<User> userList = new ArrayList<User>(); //跳转到show.jsp显示数据 request.setAttribute("userId",userId); request.setAttribute("minAge",strAge); request.setAttribute("ulist",userList); request.getRequestDispatcher("/admin/show.jsp").forward(request,response); } public void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //结束当前的session request.getSession().invalidate(); //跳转回登录页面 response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //request.setCharacterEncoding("utf-8"); //1.接收来自视图层的表单数据 String userId = request.getParameter("userId"); String realName = request.getParameter("realName"); String pwd = request.getParameter("pwd"); String rePwd = request.getParameter("repwd"); int age = Integer.parseInt(request.getParameter("age"));// "23" String [] hobbyArr = request.getParameterValues("hobby"); String strDate = request.getParameter("enterDate");//"1999-12-23" Date enterDate = Date.valueOf(strDate); //util.Date SimpleDateFormat //判断两次密码是否相同 if(pwd == null || !pwd.equals(rePwd)){ request.setAttribute("error","两次密码必须相同"); request.getRequestDispatcher("/admin/register.jsp").forward(request,response); return; } //2.调用业务层完成注册操作并返回结果 User user = new User(userId,realName,pwd,age, Arrays.toString(hobbyArr),enterDate); UserService userService = new UserServiceImpl(); int n = userService.register(user); //3.根据结果进行页面跳转 if(n>0){ response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); }else{ request.setAttribute("error","注册失败"); request.getRequestDispatcher("/admin/register.jsp").forward(request,response); } } public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //解决POST表单的中文乱码问题 //request.setCharacterEncoding("utf-8"); //获取用户名和密码 request 内建对象 请求 String username = request.getParameter("username"); String password = request.getParameter("password"); String rememberme = request.getParameter("rememberme"); //调用下一层判断登录是否成功,并返回结果 //进行服务器端的表单验证 if(username ==null || "".equals(username)){ request.setAttribute("error","用户名不能为空JSP"); request.getRequestDispatcher("/admin/login.jsp").forward(request,response); return; } if (username.length()<=6){ request.setAttribute("error","用户名长度必须大于6JSP"); request.getRequestDispatcher("/admin/login.jsp").forward(request,response);//后面语句还会执行 return; //后面的语句不再执行 } // boolean flag = false;//默认失败 // if(username.indexOf("sxt")>=0 || username.contains("尚学堂")){ // flag = true; // } User user = null;//默认登录失败 // UserDao userDao = new UserDaoImpl(); // user = userDao.find(username,password); UserService userService = new UserServiceImpl(); user = userService.login(username,password); //userService.addOrder("shoppingCart"); //输出结果 if(user != null){ //登录成功才记住我 //1.办理会员卡 String username2 = URLEncoder.encode(username,"utf-8"); Cookie cookie1 = new Cookie("uname",username2); Cookie cookie2 = new Cookie("password",password); //2.指定会员卡的作用范围,默认范围是当前目录 /servlet/LoginServlet /admin/login.jsp //cookie1.setPath("/"); //当前服务器 cookie1.setPath("/myservlet2/"); //当前项目 cookie2.setPath("/myservlet2"); //3.指定会员卡的作用时间 if("yes".equals(rememberme)){ cookie1.setMaxAge(60*60*24*10); //默认的时间浏览器不关闭的时间;-1 表示一直有效 cookie2.setMaxAge(60*60*24*10); }else{ cookie1.setMaxAge(0); cookie2.setMaxAge(0); } //4.将会员卡带回家 response.addCookie(cookie1); response.addCookie(cookie2); //成功跳转到成功页面 //out.println("登录成功"); // /servlet/LoginServlet // /servlet/success.jsp // request.getRequestDispatcher("/admin/success.jsp").forward(request,response); HttpSession session = request.getSession(); // session.setAttribute("username",username); session.setAttribute("user",user); //response.sendRedirect("/myservlet2/admin/success.jsp"); //response.sendRedirect("https://www.bjsxt.com:443/news/11377.html"); //response.sendRedirect("http://localhost:8080/myservlet2/admin/success.jsp"); //response.sendRedirect("/myservlet2/admin/success.jsp"); //response.sendRedirect("/myservlet2/admin/success.jsp"); //response.sendRedirect(request.getContextPath()+"/admin/success.jsp"); //http://192.168.58.250:8080/myservlet2/servlet/LoginServlet //http://192.168.58.250:8080/myservlet2/admin/success.jsp //登录成功后,网站的访问人数+1 //1.获取当前的访问人数 ServletContext context = this.getServletContext(); Integer count2 = (Integer) context.getAttribute("count"); //2.人数+1 if(count2 == null){ //第一个用户 count2 = 1; }else{ count2++; } //3.再存放到application作用域中 context.setAttribute("count",count2); //http://192.168.58.250:8080/myservlet2/servlet/admin/success.jsp response.sendRedirect("../admin/success.jsp"); }else{ //失败跳转回登录页面 //out.println("登录失败"); request.setAttribute("error","用户名或者密码错误"); // RequestDispatcher rd = request.getRequestDispatcher("/admin/login.jsp"); // rd.forward(request,response); //RequestDispatcher rd = request.getRequestDispatcher("http://localhost:8080/myservlet2/admin/login.jsp"); //RequestDispatcher rd = request.getRequestDispatcher("/admin/login.jsp"); //http://192.168.58.250:8080/myservlet2/servlet/admin/login.jsp RequestDispatcher rd = request.getRequestDispatcher("../admin/login.jsp"); rd.forward(request,response); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值