一定要几年这个开心的时刻!!!因此大晚上的解决了Servlet重定向404的问题,针对我自己的问题,如果你也有这样的情况,可以参考一下!
工具:IDEA 2020、Tomcat 9(本来使用的是10,但是发现怎么也实现不了!后来就换成了9)
HttpServletResponse接口的sendRedirect()方法可以用于将响应重定向到另一个资源,资源可能是servlet,jsp或html文件。它接受相对和绝对URL。
sendRedirect()方法:
(这里我针对该方法显示实例)
sendRedirect()方法的语法:
public void sendRedirect(String URL)throws IOException;
sendRedirect()方法的示例:
response.sendRedirect("http://www.baidu.com");
首先从配置Tomcat开始,因为不像在Eclipse上会直接部署到webapps上,因此对于IDEA的使用者需要事先配置:
第一步:
创建项目,对于IDEA 2020要做web项目,要选择:
java Enterprise ->勾选Web Application -> 创建项目名称MyServlet-03
第二步:配置相关路径
1、在web文件夹下的WEB-INF下创建两个文件夹分别是classes和lib
2、File -> Project Structure -> Modules -> Paths(选择Use module compile output path),注意:两个地址都要配置到刚刚创建的classes下
3、Libraries-> "+"-> java-> 选择刚刚创建的lib文件-> jar Directory-> ok
第三步:配置Tomcat
Run-> Edit Configurations-> "+"-> Tomcat Server -> local-> Server的Application server-> Configure-> 选择你的Tomcat位置(比如我的apache-tomcat-9.0.46)
注意:在Deployment下的Application context就是访问的地址,比如说我的“/MyServlet_03_war_exploded”,那么我的访问地址就是“localhost:8080/MyServlet_03_war_exploded”
第四步:创建RedirectServlet.java和BaiduSearch.java
public class RedirectServlet extendsHttpServlet {private static final long serialVersionUID = 1L;
@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throwsIOException {//设置服务器端内容类型器
response.setContentType("text/html");//获取服务器端输出对象
PrintWriter out =response.getWriter();//直接重定向到:www.baidu.com
response.sendRedirect("https://www.baidu.com");
out.close();
}
}
public class BaiduSearch extendsHttpServlet {private static final long serialVersionUID = 1L;
@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throwsIOException {//获取用户输入的关键字
String keyword =request.getParameter("keyword");
System.out.println(keyword);
String url= "https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&ch=&tn=baidu&bar=&wd="+keyword+"&oq=serious&rsv_pq=b7e075bf00169b14&rsv_t=6c67hEJVKkO%2Bkg08XTXPh9dlymb7lzNfD9TVjJHyHFxBgPqqSGuCNRywm30&rqlang=cn&rsv_enter=1&prefixsug=%25E4%25BD%25A0%25E5%25A5%25BD&rsp=1&rsv_dl=ts_1&inputT=8774";
System.out.println(url);//重定向的百度搜索
response.sendRedirect(url);
}
}
第五步:创建redirect.html(注意:这个html的位置一定要放在和jsp同一个文件下)而我总是把它放到了WEB-INF文件夹下与xml并列,在servlet类中肯定识别不(我是这么理解的)。这也是我出现404的原因!
Search by KeyWord关键字: