Значение @WebInitParam равно нулю в JSP - PullRequest
0 голосов
/ 19 марта 2019

У меня есть простой сервлет, использующий аннотации, все, что я хочу сделать, это установить начальные значения, используя параметры инициализации сервлета.

SimpleServlet.java

@WebServlet(
        description = "A simple servlet", 
        urlPatterns = { 
                "/SimpleServlet"
        }, loadOnStartup=1, initParams = {
                @WebInitParam(name="maximum", value="1000")
        })
public class SimpleServlet extends HttpServlet {

@Override
    public void init(ServletConfig config) {
        System.out.println(config.getInitParameter("maximum"));
    }
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }

index.jsp

<%@ page language="java" contentType="text/html; charset=US-ASCII"
    pageEncoding="US-ASCII"%>
<%
   out.print(config.getInitParameter("maximum"));
%>

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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>Simple Servlet</display-name>
</web-app>

Метод init печатает 1000, что является правильным. Но index.jsp печатает ноль. Можете ли вы сказать мне, что не так в этом коде?

1 Ответ

0 голосов
/ 19 марта 2019

@WebInitParam инициирует параметр для этого сервлета. Поэтому, когда вы получаете доступ к этому сервлету, у вас есть значение параметра, но когда вы получаете прямой доступ к вашему jsp, значение равно null. Таким образом, вы должны получить доступ к своей странице JSP через ваш сервлет, нажав URL-адрес /SimpleServlet. Это поможет вам:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/index.jsp").forward(request,response);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...