1

I am new to Spring MVC and Servlets. I am trying to run home() method in controller class SearchController but the output is only from home.jsp file. Statement:

out.println("<h1> this is my response block</h1>");

in not included in the result on browser.

Is there anything that can be done to print the out object statement in the browser with home.jsp file?

package springmvcsearch;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SearchController {
    @RequestMapping("/home")
    public String home(HttpServletResponse res) throws IOException {

        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        out.println("<h1> this is my response block</h1>");
        
return "home";
    }

}

This is home.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link href="<c:url value='/resources/css/style.css' />"
    rel="stylesheet">
<script src="<c:url value='/resources/js/sample.css' /> "></script>


</head>
<body>
    This is home view
    
</body>
</html>

This is the output on the browser: enter image description here

1 Answer 1

1

out.println() is used in jsp file. So you can edit your home.jsp as follows

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link href="<c:url value='/resources/css/style.css' />"
    rel="stylesheet">
<script src="<c:url value='/resources/js/sample.css' /> "></script>


</head>
<body>
    This is home view
      <%
         out.println("<h1> this is my response block</h1>");
      %>
</body>
</html>

If you want to add something for home.jsp via the controller class, you can change your controller class as follows.

package springmvcsearch;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SearchController {
    @RequestMapping("/home")
    public String home(HttpServletRequest req,HttpServletResponse res) throws IOException {

        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        String message = "this is my response block";
        req.setAttribute("message", message);
        
         return "home";
    }

}

Then change your jsp file as follows.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link href="<c:url value='/resources/css/style.css' />"
    rel="stylesheet">
<script src="<c:url value='/resources/js/sample.css' /> "></script>


</head>
<body>
    This is home view
    <h1>${message}</h1>
</body>
</html>

For further explanation, go through this link how to message from servlet and display in jsp

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.