使用< a href =">>从servler重定向到另一个servlet doGet()方法 [英] Redirect from one servlet to another from the servler doGet() method using <a href="">

查看:129
本文介绍了使用< a href =">>从servler重定向到另一个servlet doGet()方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题,如何从启动的servlet正文(doGet()或doPost())重定向到另一个servlet站点?



第一个servlet:

  public class StartingServlet extends HttpServlet 
{
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
PrintWriter out = response.getWriter();
out.println(Strona startowa);
// String go =http:// localhost:8080 / HelloWorld / test;
// response.sendRedirect(response.encodeRedirectURL(go));
out.println(< a href =http:// localhost:8080 / HelloWorld / test> Hello World Servlet< / a>);
}

}

第二个servlet想要继续点击链接):

  public class HelloWorldServlet extends HttpServlet 
{

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
PrintWriter out = response.getWriter();
out.println(Hello World Servlet);

}
}

web.xml文件(servlet-启动servlet的映射url-pattern目的是空的):

 <?xml version =1.0encoding = UTF-8\" >?; 
< web-app xmlns:xsi =http://www.w3.org/2001/XMLSchema-instancexmlns =http://java.sun.com/xml/ns/javaeexsi :schemaLocation =http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsdid =WebApp_IDversion =3.0 >
< display-name> HelloWorld< / display-name>
< welcome-file-list>
< welcome-file> index.html< / welcome-file>
< welcome-file> index.htm< / welcome-file>
< welcome-file> index.jsp< / welcome-file>
< welcome-file> default.html< / welcome-file>
< welcome-file> default.htm< / welcome-file>
< welcome-file> default.jsp< / welcome-file>
< / welcome-file-list>

< servlet>
< servlet-name>启动servlet< / servlet-name>
< servlet-class> pl.javastart.servlets.StartingServlet< / servlet-class>
< / servlet>

< servlet-mapping>
< servlet-name>启动servlet< / servlet-name>
< url-pattern>< / url-pattern>
< / servlet-mapping>

< servlet>
< servlet-name> Hello World Servlet< / servlet-name>
< servlet-class> pl.javastart.servlets.HelloWorldServlet< / servlet-class>
< / servlet>

< servlet-mapping>
< servlet-name> Hello World Servlet< / servlet-name>
< url-pattern> / test< / url-pattern>
< / servlet-mapping>

< / web-app>

我该怎么做?
提前谢谢。

解决方案

要从servlet重定向请求,您可以使用 sendRedirect 方法:

  response.sendRedirect(http:// localhost:8080 / HelloWorld / test ); 

Btw这句话:

  out.println(< a href =http:// localhost:8080 / HelloWorld / test> Hello World Servlet< / a>); 

只需在响应正文中发送链接,但不会重定向。


Hi I have a question how to redirect from starting servlet body(doGet() or doPost()) to another's servlet site?

First servlet:

public class StartingServlet extends HttpServlet 
{
private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
    {
    PrintWriter out=response.getWriter();
    out.println("Strona startowa");
//      String go  ="http://localhost:8080/HelloWorld/test";        
//      response.sendRedirect(response.encodeRedirectURL(go));
        out.println("<a href="http://localhost:8080/HelloWorld/test"> Hello World Servlet </a>");
    }

}

Second servlet(the one that i want to go after i click on link):

public class HelloWorldServlet extends HttpServlet
{

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
    {
        PrintWriter out= response.getWriter();
        out.println("Hello World Servlet");

    }
}

web.xml file(servlet-mappings url-pattern for the starting servlet is empty on purpose):

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>HelloWorld</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>Starting servlet</servlet-name>
    <servlet-class>pl.javastart.servlets.StartingServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Starting servlet</servlet-name>
    <url-pattern></url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>Hello World Servlet</servlet-name>
    <servlet-class>pl.javastart.servlets.HelloWorldServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Hello World Servlet</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>

</web-app>

How do I do that? Thank you in advance.

解决方案

To redirect a request from servlet you can use sendRedirect method :

    response.sendRedirect("http://localhost:8080/HelloWorld/test");

Btw this statement:

out.println("<a href="http://localhost:8080/HelloWorld/test"> Hello World Servlet </a>");

will simply send the link in response body but will not redirect.

这篇关于使用&lt; a href =&quot;&gt;&gt;从servler重定向到另一个servlet doGet()方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆