简体   繁体   中英

Java web servlet not working

I have a real webpage using cPanel hosting where I am starting out with learning java web dev. I only use two files: index.jsp & FirstServlet.java. The HTML page is just not using the Java code and I am not quite sure why, I got the code from a demo to have a starting reference.

index.jsp:

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=US-ASCII"
    pageEncoding="US-ASCII"%>
<!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=US-ASCII">
        <title>Hello</title>
    </head>
    <body>
        <h2>Hi There!</h2>
        <br>
        <h3>Date=<%= new Date() %>
        </h3>
    </body>
</html>

FirstServlet.java:

package com.journaldev.first;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class FirstServlet
 */
@WebServlet(description = "My First Servlet", urlPatterns = { "/FirstServlet" , "/FirstServlet.do"}, initParams = {@WebInitParam(name="id",value="1"),@WebInitParam(name="name",value="pankaj")})
public class FirstServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public static final String HTML_START="<html><body>";
    public static final String HTML_END="</body></html>";

    /**
     * @see HttpServlet#HttpServlet()
     */
    public FirstServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        Date date = new Date();
        out.println(HTML_START + "<h2>Hi There!</h2><br/><h3>Date="+date +"</h3>"+HTML_END);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

Result:

在此处输入图片说明

Rename index.html to index.jsp . The JSP compiler doesn't know that this is a file it should compile.

Edit

To run a JSP you'll need to run it within a servlet container. A servlet container would do things like parse the JSP and create the output. It looks like you're just running on a plain webserver like Apache. Does your CPanel environment support Java? It looks like it doesn't based on what you're showing.

A very common servlet container is Tomcat . The Tomcat documentation is very good even if you're just getting started.

The index.html should be renamed to index.jsp

The second is a normal .java file (servlet) and you are trying to make it a jsp file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM