Java Load a jsp-file from a servlet (App Engine)

  1. สร้าง Servlet ขึ้นมา 1 ไฟล์ เช่น testServlet.java อยู่ใน src/com.app.gae/ โดย Servlet นี้ถ้าเทียบกับ php ก็มองเหมือน Controller ซึ่งโค้ดจะเป็นลักษณะนี้
    package com.app.gae;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.*;
    @SuppressWarnings("serial")
    public class testServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws IOException, ServletException {
    resp.setContentType("text/plain");
    //load view test.jsp
    req.getRequestDispatcher("/test.jsp").forward(req, resp);
    }
    }
    package com.app.gae;
    import java.io.IOException;
    import javax.servlet.ServletException;import javax.servlet.http.*;
    @SuppressWarnings("serial")public class testServlet extends HttpServlet {   public void doGet(HttpServletRequest req, HttpServletResponse resp)         throws IOException, ServletException {      resp.setContentType("text/plain");              //load view test.jsp        req.getRequestDispatcher("/test.jsp").forward(req, resp);   }}
  2. แก้ไขไฟล์ web.xml ที่อยู่ใน war/WEB-INF/ โดยไฟล์ web.xml นี้ถ้าเทียบกับ php ก็มองเหมือนไฟล์ route ซึ่งจะทำหน้าที่ map url กับ controller โค้ดเป็นดังนี้
    <?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"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

    <servlet>
        <servlet-name>test</servlet-name>
        <servlet-class>com.app.gae.testServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>test</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    </web-app>

    จากไฟล์นี้จะบอกว่าหน้าแรกแสดงผลที่ไฟล์ index.html และถ้าเข้ามาด้วย /test จะโหลดทำงานที่ testServlet และที่ testServlet เราจะใช้คำสั่งนี้เพื่อแสดงผลที่ไฟล์ jsp โดยส่งค่าทั้งหมดต่อไปให้ด้วย

    req.getRequestDispatcher("/test.jsp").forward(req, resp);

Related posts:

This entry was posted in google app engine, java. Bookmark the permalink.