servlet与jsp跳转方法及问题 |
您所在的位置:网站首页 › form表单提交可不可以直接跳到另一个界面 › servlet与jsp跳转方法及问题 |
记录了一些自己在做项目的过程中遇到的问题和解决过程 简介项目第一步注册与登录。项目采用的是SpringBoot+mybatis.登录注册页面是用jsp+servlet来写的。以下没有完整记录代码, 就是记录了一些关键步骤和知识点以及遇到的问题和解决方法。 from表单提交到servletjsp页面中的信息需要通过表单提交给servlet来处理。下面看一下提交方法。 创建一个servlet类![]() 该servlet需要继承HttpServlet类并重写相应的doGet和doPost方法。 web.xml 注册servlet---->动态页面jsp需要配置,让浏览器知道请求分发到哪一个servlet。 LoginServlet com.tang.share_nice.service.servlet.LoginServlet LoginServlet /loginLoginServlet下面对应的对应相应的servlet的包路径 form表单提交数据 用户登录 用户名: 密码:要注意的是:form表单中的action对应web.xml配置的url-pattern /loginaction=“login” 通过上面三个步骤的配置,在点击表单的提交按钮是,就可以成功通过post方法将请求交给servlet来处理。 jsp页面跳转web项目中的安全目录是WEB-INF,这个页面是无法通过浏览器中输入的绝对路径访问的,需要添加一些配置 servlet跳转jsp if (login.getRet()) { request.getRequestDispatcher("/WEB-INF/views/success.jsp").forward(request, response); } else { request.getRequestDispatcher("/WEB-INF/views/defeat.jsp").forward(request, response); }在servlet里面跳转需要通过request的forward的方法,不能使用redirect重定向。 jsp路径需要写出从WEB-INF开始的完整路径及页面名称 jsp跳转jspjsp跳转jsp也会因为安全性被限制,需要在web.xml中添加配置。 register /WEB-INF/views/register.jsp register /registerjsp配置完这个之后,就可以在jsp页面通过如下的链接访问了 注册share_nice_war_exploded为项目的程序名,registerjsp为在web.xml中配置的url-pattern 除此之外也可以这样访问 test 问题及解决方法 mapper用@Autowired进行注入的时候报空指针异常Service层注入的mapper对象为空 在找到上面的原因之后,我将servlet对象中用到的对象也进行了注入实例化。但是在debug时,service对象依旧为空。此时想到了servlet类的特殊性,他是放在servlet容器中来进行管理的,Spring也管不到他,所以注入需要使用特殊的方式 @Override public void init(ServletConfig config) { SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); }在servlet层添加该方法,将servlet上下文环境添加到Spring管理的上下文环境中,就能支持@Autowired注解了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |