会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133322个问题

package com.bjsxt.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 *需求:当客户端浏览器第一次访问Servlet时返回“您好,欢迎您第一次访问!”,
 * 第二次访问时返回“欢迎您回来!”。
 */
public class WelComeServlet 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 {
       //获取Cookie
        Cookie[] cookies = req.getCookies();
        boolean flag = false;
        if(cookies != null){
            for(Cookie cookie:cookies){
                if("first".equals(cookie.getName())){
                    flag = true;
                }
            }
        }
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
        out.println("<HTML>");
        out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>");
        out.println("<BODY>");
        if(flag){
            out.println("欢迎您回来!");
        }else{
            out.println("您好,欢迎您第一次访问!");
            Cookie cookie = new Cookie("first","first");
            cookie.setMaxAge(60);
            resp.addCookie(cookie);
        }

        out.println("</BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
}

老师,这份 代码中为什么不需要在开头new一个cookie,就直接创建一个cookie数组了

JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 916楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 917楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 918楼

老师,只要是设计 HTML页面的,我都无法执行


页面报错截图

image.png

网页控制台报错截图

image.png

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form ACTION="/reset.do" method="post">
        搜索:<input type="text" name="search"/><br/>
        <input type="submit" value="Search"/>
    </form>
</body>
</html>


xml配置文件代码

<servlet>
    <servlet-name>Demo6_RedirectServlet</servlet-name>
    <servlet-class>com.bjsxt.servlet.ServletDemo.Demo6_RedirectServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Demo6_RedirectServlet</servlet-name>
    <url-pattern>/reset.do</url-pattern>
</servlet-mapping>


java代码

package com.bjsxt.servlet.ServletDemo;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;

/*
重定向响应
一般有两次请求:
一 、请求自己的服务器,发现在头文件中的location中有url
二、请求url地址
 */
public class Demo6_RedirectServlet 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 {
        req.setCharacterEncoding("utf-8");
        String search = req.getParameter("search");
        resp.sendRedirect("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+ URLEncoder.encode(search,"utf-8"));
    }
}

还有就是上面java代码中,

String search = req.getParameter("search");

括号中的search代表的是什么意思?

JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 919楼
JAVA 全系列/第六阶段:JavaWeb开发/Web实战案例 923楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 925楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 926楼
JAVA 全系列/第六阶段:JavaWeb开发/Ajax技术详解(旧) 929楼
JAVA 全系列/第六阶段:JavaWeb开发/Ajax技术详解(旧) 930楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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