会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132648个问题

package com.bjsxt.web.servlet;

import com.bjsxt.commons.Constants;
import com.bjsxt.exception.UserNotFoundException;
import com.bjsxt.pojo.Users;
import com.bjsxt.service.UserLoginServive;
import com.bjsxt.service.impl.UserLoginServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/*
    处理用户请求登录
*/
@WebServlet("/login.do") 
public class UserLoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("username"); 
        String pwd =req.getParameter("userpwd");
        try{
            UserLoginServive userLoginServive = new UserLoginServiceImpl(); 
            Users users =userLoginServive.userLogin(name,pwd); 
            /*
            建立客户端与服务端的会话状态
            */
            HttpSession session =req.getSession();
            //会话状态建立
            session.setAttribute(Constants.USER_SESSION_KEY,users);//这里的 键 调用了Constants类中的常量, 值 是上面的users
            //跳转到首页,使用重定向的方式实现跳转
            resp.sendRedirect("main.jsp");
        }catch (UserNotFoundException u){
            req.setAttribute("msg",u.getMessage());
            req.getRequestDispatcher("login.jsp").forward(req,resp); //重新跳转到登录页面
        }catch (Exception e){
            resp.sendRedirect("error.jsp"); //如发生其他异常的时候,跳转到一个错误提示页面
        }
    }
}

老师,在写servlet层的时候,上面这段代码中的

            UserLoginServive userLoginServive = new UserLoginServiceImpl(); 
            Users users =userLoginServive.userLogin(name,pwd);

这两行代码的作用是什么?

用来判断用户信息是否存在的嘛?


JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 917楼
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 918楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 920楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 923楼
JAVA 全系列/第五阶段:JavaWeb开发/XML技术(旧) 924楼
JAVA 全系列/第五阶段:JavaWeb开发/XML技术(旧) 925楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 926楼

package com.bjsxt.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 *需求:当客户端浏览器第一次访问Servlet时返回“您好,欢迎您第一次访问!”,
 * 第二次访问时返回“欢迎您回来!”。
 */
public class WelComeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //获取Cookie
        Cookie[] cookies = req.getCookies();
        boolean flag = false;
        if(cookies != null){
            for(Cookie cookie:cookies){
                if("first".equals(cookie.getName())){
                    flag = true;
                }
            }
        }
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
        out.println("<HTML>");
        out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>");
        out.println("<BODY>");
        if(flag){
            out.println("欢迎您回来!");
        }else{
            out.println("您好,欢迎您第一次访问!");
            Cookie cookie = new Cookie("first","first");
            cookie.setMaxAge(60);
            resp.addCookie(cookie);
        }

        out.println("</BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
}

老师,这份 代码中为什么不需要在开头new一个cookie,就直接创建一个cookie数组了

JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 928楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 929楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 930楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637