无法在我的 Servlet 程序中重定向到外部 URL(如 google.com)
Unable to redirect to external URL's (like google.com) in my Servlet program
在我的程序中,我使用 URL- 重写方法从用户那里获取输入。例如,如果用户输入公司名称为google,程序会开发一个URL 为www.google.com 供用户调用。但是这里的问题就在这里。我无法调用 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。 Website.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>
我的 web.xml Servlet 文件
<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
我认为您需要像这样更改代码
<a href ="http://www.google.com"><p>Website</p></a>
因为如果标签 href
没有 http:// 那么你的程序将理解它是一个 servlet name.In 添加,你必须关闭你的 html 标签。例如:
<a>content</a> or <b>content</b>
类似于:
<a href="bla"></a>
被解释为当前页面 URL 的相对 URL。
类似于:
<a href="//bla"></a>
被解释为
default_protocol_page://bla
例如文件://bla
想法是构建完整的URL。
在我的程序中,我使用 URL- 重写方法从用户那里获取输入。例如,如果用户输入公司名称为google,程序会开发一个URL 为www.google.com 供用户调用。但是这里的问题就在这里。我无法调用 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。 Website.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>
我的 web.xml Servlet 文件
<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
我认为您需要像这样更改代码
<a href ="http://www.google.com"><p>Website</p></a>
因为如果标签 href
没有 http:// 那么你的程序将理解它是一个 servlet name.In 添加,你必须关闭你的 html 标签。例如:
<a>content</a> or <b>content</b>
类似于:
<a href="bla"></a>
被解释为当前页面 URL 的相对 URL。
类似于:
<a href="//bla"></a>
被解释为
default_protocol_page://bla
例如文件://bla
想法是构建完整的URL。