栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

提交HTML表单后,servlet操作将显示在URL中而不是JSP文件中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

提交HTML表单后,servlet操作将显示在URL中而不是JSP文件中

调度发生在服务器端,而不是客户端。前向基本上告诉servlet容器使用哪个视图来呈现结果。它的位置确实没有出现在客户端的浏览器地址栏中。仅当您使用重定向而不是时,才会发生这种情况

response.sendRedirect()
。重定向基本上告诉Web浏览器在给定位置上触发新的GET请求。因此,浏览器地址栏将更改为新的URL。

只需将视图(JSP文件)隐藏在

/WEB-INF
文件夹中,以使最终用户不再可以直接访问它,并重复使用相同的servlet通过来显示登录表单,
doGet()
并继续通过来处理登录表单提交
doPost()
。如果未实现,
doGet()
则它将显示HTTP状态405-此URL不支持HTTP方法GET。

@WebServlet("/login")public class LoginServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // Just show form.        request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);    }    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // Process form submit.        // ...        if (success) { response.sendRedirect("home");        } else { request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);        }    }}

这样,您可以通过http://example.com/context/login获取登录页面并提交到相同的URL。

您可以在前端控制器模式的帮助下,通过单个servlet对所有其他URL进行相同的操作。仅需一点工作,这也是MVC框架存在的原因:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435663.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号