会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132984个问题
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 646楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解 647楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解 648楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解 649楼

ajaxdemo.zip

blob.png老师我这个更新用户点击没反应是什么情况呢,也没报错

JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 650楼
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解 654楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 655楼

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实战案例 656楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 658楼

package com.bjsxt.servlet;

import com.bjsxt.commons.JsonUtils;
import com.bjsxt.pojo.User;

import javax.servlet.ServletContext;
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 java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/*
* 用户管理Servlet
* */
@WebServlet("/user.do")
public class UserServlet extends HttpServlet {
    //生成模拟数据的初始化
    public void init() throws ServletException {
        User user=new User();
        user.setUserid(1);
        user.setUsername("Oldlu");
        user.setUsersex("male");
        user.setUserbirth(new Date());
        User user2=new User();
        user2.setUserid(2);
        user2.setUsername("suyue");
        user2.setUsersex("famale");
        user2.setUserbirth(new Date());
        List<User> list=new ArrayList<>();
        list.add(user);
        list.add(user2);
        ServletContext servletContext=this.getServletContext();
        servletContext.setAttribute("list",list);

    }

    @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 flag=req.getParameter("flag");
        if("getData".equals(flag)){
            this.getData(req,resp);
        }else if("addUser".equals(flag)){
            this.addUser(req,resp);

        }
    }
    private void getData(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        //获取页面初始化数据
        List<User> list=(List<User>) this.getServletContext().getAttribute("list");
        String s= JsonUtils.objectToJson(list);
        resp.setContentType("application/json");
        PrintWriter pw=resp.getWriter();
        pw.print(s);
        pw.flush();
        pw.close();
    }
    //处理添加用户请求
    private void addUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        User user=this.creatUser(req);
        ServletContext servletContext=this.getServletContext();
        List<User> list=(List<User>) servletContext.getAttribute("list");
        list.add(user);
        resp.setContentType("text/plain;charset=utf-8");
        PrintWriter pw=resp.getWriter();
        pw.print("添加成功");
        pw.flush();
        pw.close();
    }
    //获取请求数据
    private User creatUser(HttpServletRequest req){
        String userid=req.getParameter("userid");
        String username=req.getParameter("username");
        String usersex=req.getParameter("usersex");
        String userbirth=req.getParameter("userbirth");
        User user=new User();
        user.setUserid(Integer.parseInt(userid));
        user.setUsername(username);
        user.setUsersex(usersex);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date parse = sdf.parse(userbirth);
            user.setUserbirth(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return user;
    }
}

老师可不可以帮我看一下,我这个代码哪个

try {
            Date parse = sdf.parse(userbirth);
            user.setUserbirth(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }

这里面出错,我每次加上这个try catch,我的代码就运行不过去,但是它也不报错。就卡在哪里。把它注释了代码就能正常运行但是哪个日期就显示null。不注释的话就直接卡在哪里面了。

image.png

JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 659楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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