javascript - jsp提交表单后跳转到servlet,然后用什么方式返回到表单页面?
阿神
阿神 2017-04-11 11:06:28
[JavaScript讨论组]
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
         response.setContentType("text/html");
         response.setCharacterEncoding("utf-8");
        Category category = new Category();
        category.add(new String(request.getParameter("name").getBytes("iso-8859-1"), "utf-8"));
        response.getWriter().println("");
    }

我这里是用window.location.href 脚本操作返回页面。这样合理吗?

阿神
阿神

闭关修行中......

全部回复(4)
迷茫

response.sendRedirect()

PHP中文网

不可以,这是js代码当运行在浏览器里,如果要回到表单页面,可以使用楼上的那种方式,或者请求转发,但是需要指定路径,属于服务器请求。
如果在页面使用js提交表单,则无需这么麻烦

黄舟

你如果主要用的是jsp,html如果把form的路径填成servlet,确实就需要java来重定向,也就是response.sendRedirect()
但是现在一般都是ajax去提交POST的HTTP请求,所以一般是js来控制跳转。

但你这种写法是最好不要的,前后端过于耦合。

阿神

你说的应该是表单页面提交后返回表单列表吧,你给方式可能可用,但应该是古董级的方法了,感觉还要向页面写入脚本,其实用重定向方式很好解决的,具体如下:

1、web.xml配置内容Servlet的规则:

<servlet>
    <servlet-name>main</servlet-name>
    <servlet-class>你的Servlet类全名</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>main</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

2、Servlet类(继承HttpServlet)中的关键配置
(service()服务器接收所有请求的入口)

@Override 
protected void service(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
    //根据规范判断请求路径
    String path = req.getServletPath();
    if ("/category.do".equals(path)) {
        //查询所有的表单目录
        category(req,res);
    } else if (
    ....
}

(自定义的addcategory()处理完表单提交后重定向到category.do,客户端收到后会向服务器发起category.do请求)

private void addcategory(HttpServletRequest req, HttpServletResponse res) throws IOException {
...

res.sendRedirect("category.do");
}

如果你一定要用原始的Servlet,这个方式至少简单灵活点。其实这种与前端交互的内容,早已被框架大大简化,建议你别太深入,理解处理原理就行了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号