Как связать внешний CSS в сервлете Java? - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть страница report.jsp, которая выглядит следующим образом (ПРИМЕЧАНИЕ: я только что добавил необходимые коды).

<form name="report" action="../printOrganization" method="post">
<table>
    <tr>
        <td>
            Organization name: <input type="text" name="orgName" />
        </td>
    </tr>
    <tr>
        <td>
            <input type="submit" value="Submit" name="action" /> 
        </td>
    </tr>
</table>

Когда пользователь нажимает кнопку «Отправить» на странице report.jsp. Запрос отправляется сервлету с именем OrganizationServlet. И запрос обрабатывается методом doPost. Код в OrganizationServlet выглядит следующим образом:

public class OrganizationServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String organizatio = request.getParameter("orgName");

    if (organizatio.equals("ABC")) {
        printAllOrganization();

    }
}

public void printAllOrganization()
{
    PrintWriter pw = response.getWriter();
    response.setContentType("text/html");

    pw.println("<!DOCTYPE html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n");
    pw.println("<html>\n");
    pw.println("<head>\n");
    pw.println("<title> Print Organization </title>\n");
    pw.println("<link rel=\"stylesheet\" type=\"text/css\" HREF=\"../styles/myStyle.css\">\n"); // This style sheet doesn't show effect when program run in browser
    pw.println("</head>\n");

    pw.println("<body>\n");

        //printing all organization code is here!

    pw.println("</body>\n");


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

Часть web.xml, которая обрабатывает запрос, показана ниже:

<servlet>
  <servlet-name>servletForOrganization</servlet-name>
  <servlet-class>com.project.report.OrganizationServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>servletForOrganization</servlet-name>
  <url-pattern>/printOrganization</url-pattern>
</servlet-mapping>

Мой css-файл находится по этому пути:

MyProject > resource > styles > myStyle.css

Когда я запускаю свое приложение в браузере, стиль css в методе printAllOrganization () сервлета OrganizationServlet не дает никакого эффекта. Может кто-нибудь, пожалуйста, помогите мне, как решить эту проблему. Заранее спасибо.

1 Ответ

0 голосов
/ 22 апреля 2019

Добавьте в свой домашний файл JSP:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

  <link rel="stylesheet" href="<c:url value="/resource/styles/myStyle.css" />">

Добавить в dispatcher-servlet.xml:

  <mvc:resources mapping="/resource/**" location="/resource/" />

измени свой класс:

 public class OrganizationServlet extends HttpServlet {

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            String organizatio = request.getParameter("orgName");

            if (organizatio.equals("ABC")) {
                printAllOrganization(request);

            }
        }

        public void printAllOrganization(HttpServletRequest request) {
            PrintWriter pw = response.getWriter();
            response.setContentType("text/html");

            pw.println("<!DOCTYPE html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n");
            pw.println("<html>\n");
            pw.println("<head>\n");
            pw.println("<title> Print Organization </title>\n");
            pw.println("<link rel=\"stylesheet\" type=\"text/css\" HREF=\"" + request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/resource/styles/myStyle.css\">\n");
            pw.println("</head>\n");

            pw.println("<body>\n");

            //printing all organization code is here!
            pw.println("</body>\n");

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