On 14/02/2020 18:29, Richard Monson-Haefel wrote:
> Hi,
>
> I'm experimenting with using annotations. I created a Servlet with
> annotations and then attempt to get the init parameters in the doGet()
> method, but I keep getting a null value when I use
> this.getServletConfig(). If I save the ServletConfig in an instance
> variable from the init() method it works as expected. Shouldn't the
> this.getServletConfig() return the configuration object instead of a null?
> What am I missing?
You need to call super.init(confg)
Mark
>
> Here is a listing. The code is also attached. I've run it both with and
> without a web.xml file (just the root element when present).
> @WebServlet(
> name="myservlet",
> urlPatterns={"/"},
> initParams={
> @WebInitParam(name="name", value="Richard"),
> @WebInitParam(name="greeting", value="Hola")
> }
> )
> public class TheServlet extends HttpServlet {
>
> ServletConfig myConfig;
>
> public void init(ServletConfig config) throws ServletException{
> myConfig = config;
> }
>
> protected void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>
> // Set content type
> response.setContentType("text/plain");
>
> // Get initialization parameters
>
> //ServletConfig config = this.getServletConfig();
> //^^^^^^^^^^^^^^ The above returns null ^^^^^^^^
>
> ServletConfig config = myConfig;
> //^^^^^^^The above works ^^^^^^^^
>
> if(config != null){
> String name = config.getInitParameter("name");
> String greeting = config.getInitParameter("greeting");
> response.getWriter().println(greeting + " " +name);
> }else{
> response.getWriter().println("there is no config");
> }
> }
> }
>
> Thanks in advance!
>
> Richard
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]