很久不写 Servlet 有大佬知道这是啥问题嘛 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hemingyang
V2EX    Java

很久不写 Servlet 有大佬知道这是啥问题嘛

  •  
  •   hemingyang 2023-12-19 16:23:33 +08:00 3161 次点击
    这是一个创建于 693 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是过滤器方法

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse respOnse= (HttpServletResponse)resp; HttpSession session = request.gtSession(); String path = request.getRequestURI(); if(path.contains("login.jsp") || path.contains("/login") ||path.contains("register.jsp") ||path.contains("register") || path.contains("/DrawValidateCode") || path.contains("/layui") || path.contains("/image")){ chain.doFilter(req, resp); //登录页面,登录请求,验证码请求,前端资源和图片一律放行 }else{ String username = (String)session.getAttribute("username"); if (username == null){ //用户不存在一律重定向到登录页 response.sendRedirect(request.getContextPath() + "/login.jsp"); }else { chain.doFilter(req, resp); } } }

    这个注册 @WebServlet(urlPatterns = "/addUser") public class RegisterServlet extends HttpServlet {

    @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.printf("1111111111111"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); String jsOnRegistration= RequestUtil.getRequestBody(req); Gson gson = new Gson(); JsonObject jsOnObject= new JsonParser().parse(jsonRegistration).getAsJsonObject(); String username = jsonObject.get("username").getAsString(); String password = jsonObject.get("password").getAsString(); resp.setContentType("application/json"); BaseResponse<Integer> baseRespOnse= new BaseResponse<Integer>(); boolean registratiOnSuccess= AdminDao.insertAdministrator(username, password); if (registrationSuccess) { baseResponse.setCode(200); baseResponse.setMsg("注册成功"); resp.sendRedirect(req.getContextPath() + "/login.jsp"); } else { baseResponse.setCode(500); baseResponse.setMsg("注册失败,请重试"); } PrintWriter out = resp.getWriter(); out.print(gson.toJson(baseResponse)); out.flush(); out.close(); } 

    }

    前端就 layui' <script> layui.use(['form'], function(){ var form = layui.form;

     form.on('submit(registrationForm)', function(data){ var formData = { username: data.field.username, password: data.field.password }; $.ajax({ url: '/addUser', type: 'POST', data: JSON.stringify(formData), success: function(res) { if(res.code === 200) { layer.msg('注册成功!'); window.location.href = '/login.jsp'; } else { layer.msg('注册失败!'); } }, error: function(error) { layer.msg('注册请求失败:' + error.statusText); } }); return false; }); }); 
    </script>
    就是进不了这个放 addUser 打断也调试了看不出问题 
    19 条回复    2023-12-20 10:00:50 +08:00
    mgzu
        1
    mgzu  
       2023-12-19 17:24:32 +08:00
    github 整个 demo 先,这没法看
    hemingyang
        3
    hemingyang  
    OP
       2023-12-19 17:29:32 +08:00
    @mgzu 我上传了,大佬看看
    fiveStarLaoliang
        4
    fiveStarLaoliang  
       2023-12-19 18:38:37 +08:00
    写惯了 springboot 项目, 现在遇到一个 jsp 的项目, 直接懵逼了, 都忘了怎么跑起来了
    hemingyang
        5
    hemingyang  
    OP
       2023-12-19 18:42:30 +08:00
    @fiveStarLaoliang 我也是看得头大,哈哈,用 idea 摸索了会才运行起来
    undeflife
        6
    undeflife  
       2023-12-19 18:52:03 +08:00
    hemingyang
        7
    hemingyang  
    OP
       2023-12-19 19:05:21 +08:00
    @undeflife 不是这个原因,我就新加了注册方法,其实其他请求都正常,我怀疑
    https://github.com/hemingyang/studentManagement/blob/main/src/main/java/com/zcx/studentManagement/filter/LoginFilter.java
    这个过滤器的原因
    fiveStarLaoliang
        8
    fiveStarLaoliang  
       2023-12-19 19:12:01 +08:00
    你把 path 打印一下呗, 看看请求的具体路径是什么
    taogen
        9
    taogen  
       2023-12-19 19:22:52 +08:00
    你请求的路径是什么?有没有加 Context Path ?

    request URI = Context Path + Servlet Path + Path Info + Query String

    e.g. http://localhost:8080/myproject/myservlet/remove?id=1

    - Context Path: `/myproject`
    - Servlet Path: `/myservlet`
    - Path Info: `/remove`
    - Query String: `?id=1`
    chanchan
        10
    chanchan  
       2023-12-19 19:32:17 +08:00
    看响应 404 ?估计路径不对
    zoharSoul
        11
    zoharSoul  
       2023-12-19 19:51:47 +08:00
    要不咱还是整个 spring 吧
    siweipancc
        12
    siweipancc  
       2023-12-19 21:11:18 +08:00
    哇塞, 够原始, 我喜欢
    javak
        13
    javak  
       2023-12-19 22:51:49 +08:00   1
    @hemingyang 这 demo 给的太不负责了啊。 整成 maven 或者 gradle 或者 ant 的项目,把依赖弄齐,然后说明怎么跑起来了。直接丢源码,让我们自己去补全依赖。
    ikas
        14
    ikas  
       2023-12-19 23:30:44 +08:00
    jdk17 加 tomcat8.5 测试了,可以访问到 addUser ,get 与 post 都可以
    hemingyang
        15
    hemingyang  
    OP
       2023-12-20 00:19:40 +08:00
    hemingyang
        16
    hemingyang  
    OP
       2023-12-20 00:20:23 +08:00
    @ikas 我就想加个注册功能不知道为啥就是进不了方法
    xuanbg
        17
    xuanbg  
       2023-12-20 08:30:52 +08:00
    后端方法进不去可以肯定是路径的问题,盲猜是文件没有访问权限
    hemingyang
        18
    hemingyang  
    OP
       2023-12-20 09:27:35 +08:00
    @xuanbg https://mjj.today/i/8TMDkO 这是请到后台的信息
    hemingyang
        19
    hemingyang  
    OP
       2023-12-20 10:00:50 +08:00
    解决了 直接改成了

    <form class="layui-form" method="post" id="registrationForm" action="/addUser"> 原生的 action
    没有 layui
    <script>
    layui.use(['form'], function(){
    var form = layui.form;
    form.on('submit(registrationForm)', function(data){
    var formData = {
    username: data.field.username,
    password: data.field.password
    };
    $.ajax({
    url: '/addUser',
    type: 'POST',
    data: JSON.stringify(formData),
    success: function(res) {
    if(res.code === 200) {
    layer.msg('注册成功!');
    window.location.href = '/login.jsp';
    } else {
    layer.msg('注册失败!');
    }
    },
    error: function(error) {
    layer.msg('注册请求失败:' + error.statusText);
    }
    });

    return false;
    });
    });
    </script>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     947 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:24 PVG 06:24 LAX 14:24 JFK 17:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86