java - 无法在我的 Servlet 程序中重定向到外部 URL(如 google.com)

标签 java tomcat servlet-3.0

在我的程序中,我使用 URL 重写方法从用户那里获取输入。例如,如果用户输入公司名称为 google,程序将开发一个 URL 为 www.google.com,用户可以调用该 URL。但是这里的问题就在这里。我无法调用 www.google.com,而是调用 localhost:8080/Myproject/www.google.com。为了更清楚,也请参阅我的屏幕截图。谢谢。

两个java程序1.Login.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class Login extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
    String Company=req.getParameter("Company");

    PrintWriter pw=res.getWriter();
    pw.println("<html>");
    pw.println("<body bgcolor='green'>");

    pw.println("<p>YOUR ARE LOGGED INTO THE "+ Company +" Sucessfully</p>");
    pw.println("<a href='./Website?Cname="+Company+"'>VISIT</a>");

    pw.println("</body>");
    pw.println("</html");
    pw.close();
 }
}

2。网站.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class Website extends HttpServlet{
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{

        String Company=req.getParameter("Cname");

        PrintWriter pw=res.getWriter();

        pw.println("<html>");
        pw.println("<body bgcolor='grey'>");

        String Website="www."+Company+".com";
        pw.println("Website URL="+Website);

        pw.println("<a href='www."+Company+".com'>Website</p>");

        pw.println("</body>");
        pw.println("</html");
        pw.close();

    }
}

我的输入html代码

<html>
<body bgcolor='pink'>
    <center>
        <form method="post" action="./Login">
            Enter your Company Name:<input type="text" name="Company">
            <input type="submit" Value="SUBMIT">
        </form>
    </center>
</body>

我的 Servlet 的 web.xml 文件

    <web-app>
    <servlet>
        <servlet-name>SA</servlet-name>
        <servlet-class>Login</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SA</servlet-name>
        <url-pattern>/Login</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>SB</servlet-name>
        <servlet-class>Website</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SB</servlet-name>
        <url-pattern>/Website</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
    <welcome-file>Images.html</welcome-file>
    </welcome-file-list>

</web-app>

图像根据正在进行的调用进行编号。如果您引用第 4 个屏幕截图,则 url 显示为“http://localhost:8080/CompanyImages/www.google.com” ',但预期是读取 URL,'www.google.com

The image are numbered as per the call that is taking place. If you refer to the 4th screenshot, theburl reads as 'http://localhost:8080/CompanyImages/www.google.com', but the expectation is to read the URL, 'www.google.com'

最佳答案

我认为你需要像这样更改你的代码

<a href ="http://www.google.com"><p>Website</p></a> 因为如果标记 href没有 http://那么你的程序会理解它是一个 servlet 名称。此外,你必须关闭你的 html 标签。例如:

<a>content</a> or <b>content</b>

关于java - 无法在我的 Servlet 程序中重定向到外部 URL(如 google.com),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848829/

相关文章:

java - 我的应用程序在运行时未使用添加的依赖项

java - 如何将 PreAuthorize 与异步 Spring MVC Controller 一起使用

servlet-3.0 - 如何在Servlet中使用注释而不是web.xml来指定url

java - 当我输入下载链接URL时,如何让chrome F12开发者工具记录网络?

java - 使用 Java 从 HTML 中提取微数据

java - NetBeans:如何将 ScrollBar 添加到 JPanel

java - 如何在java中用新值更新绘制的矩形

Apache Tomcat 上 Vaadin 前端的性能

html - 如何在 HTML 文件中设置内容编码

java.lang.AbstractMethodError : oracle. jdbc.driver.T4CConnection.isValid(I)Z 错误