我无法在网络浏览器上看到登录页面

时间:2018-10-23 05:00:58

标签: html servlets web.xml

这是Java代码:我没有收到任何错误指示,但是该代码的输出未显示在Web服务器上。它的Web地址显示为:(http://localhost:6027/HttpSearchBar/Example)。告诉我本地主机6027是否为有效地址?

package search.com;

import java.io.IO Exception;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Example extends HttpServlet{
 /**
 * 
 */
private static final long serialVersionUID = 102831973239L;

public void dopost (HttpServletRequest hreq, HttpServletResponse hres)throws ServletException, IOException{
    System.out.println("hello");

    try {
        hres.setContentType("text/html");
        String s1 = hreq.getParameter("username");
        String s2 = hreq.getParameter("password");
        ServletContext sc = getServletContext();

        if ((s1.equals("abc"))&&(s2.equals("xyz"))) {
            hres.sendRedirect("welcome");

        }else {
            PrintWriter pw = hres.getWriter();
            pw.print("invalid username/password");
            RequestDispatcher rd = sc.getRequestDispatcher("login.html");
            rd.include(hreq, hres);
        }
    } catch (Exception e) {
        // TODO: handle exception
        System.err.print(e);
    }
} }

这是html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Example Html</title>
</head>
<body bgcolor=yellow text=blue>
<center>
    <h1>
        <u>LoginForm</u>
    </h1>
    <form action="Example" method="post">
        UserName<input type="text" name="username"> 
        Password<input type="text" name="Password"> 
        <input type="submit" value="login" /><input type="reset">


    </form>
</center>
</body>
</html>

这是web.xml代码:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>HttpSearchBar</display-name>
  <servlet>
    <servlet-name>Example</servlet-name>
    <servlet-class>Example</servlet-class>

  </servlet>
  <servlet-mapping>
    <servlet-name>Example</servlet-name>
    <url-pattern>/Example</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>404</error-code>
    <location>/Example</location>
  </error-page>
  <error-page>
    <error-code>403</error-code>
    <location>/Example</location>
  </error-page>
  <error-page>
    <exception-type>javax.servlet.ServletException</exception-type>
    <location>/Example</location>
  </error-page>
  <error-page>
    <exception-type>java.io.IOException</exception-type>
    <location>/Example</location>
  </error-page>
  <error-page>
    <exception-type>java.lang. Throw able </exception-type>
    <location>/search.com.Example</location>
  </error-page>

  <welcome-file-list>
    <welcome-file>login.html</welcome-file>
    <welcome-file>login.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>
</web-app>

服务器启动时显示:

Oct 22, 2018 6:41:52 PM org.apache.catalina.core.ApplicationDispatcher 
invoke
WARNING: Servlet Example is currently unavailable

2 个答案:

答案 0 :(得分:1)

从浏览器向package main import ( "encoding/json" "fmt" "io" "log" "strings" ) func main() { const jsonStream = ` {"Name": "Ed", "Text": "Knock knock."} {"Name": "Sam", "Text": "Who's there?"} {"Name": "Ed", "Text": "Go fmt."} {"Name": "Sam", "Text": "Go fmt who?"} {"Name": "Ed", "Text": "Go fmt yourself!"} ` type Message struct { Name, Text string } dec := json.NewDecoder(strings.NewReader(jsonStream)) for { var m Message if err := dec.Decode(&m); err == io.EOF { break } else if err != nil { log.Fatal(err) } fmt.Printf("%s: %s\n", m.Name, m.Text) } } 发送请求。如果您可以看到默认的Apache Tomcat page,则localhost:6027是有效地址。


有几个原因可能导致您看不到任何答复。

  1. Java区分大小写。您的发布方法不正确。替换为http://localhost:6027/

    doPost
  2. 您的html密码输入名称为public void doPost(HttpServletRequest hreq, HttpServletResponse hres) throws ServletException, IOException { ,并且使用小写的name="Password"来获取它。

    p
  3. 最后不要使用String s2 = hreq.getParameter("Password"); //uppercase P ,只需重定向页面即可。替换RequestDispatcher语句中的所有内容。

    else

答案 1 :(得分:0)

通过参考附带的服务器日志,似乎您正在尝试在Tomcat Tomcat服务器上运行servlet项目。 Tomcat的默认端口为8080。也就是说,您应该尝试在以下位置访问正在运行的应用程序:     http://localhost:8080

如果要自定义运行端口,则必须使用 server.xml 文件来完成。