现在我们开始编写一个简单的web应用。从简单的开始:写一个HelloServlet,接收GET类型的/hello请求,转发到/WEB-INF/jsp/hello.jsp页面,然后再hello.jsp页面显示系统当前时间。
1,首先在java目录下创建一个包名(技巧:鼠标选中java目录,按下alt+insert快捷键,选择package选项,输入具体的包名,回车即可创建包,用同样的方法也可以创建类或其他文件)
2.在包下创建一个HelloServlet的类,代码如下:
package org.smart4j.chapter1;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by jack on 2015/11/23.
*/
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = dateFormat.format(new Date());
request.setAttribute("currentTime",currentTime);
request.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(request,response);
}
}
代码说明:
1)继承HttpServlet,让它成为一个Servlet类。
2)覆盖父类的doGet方法,用于接收get请求。
3)在doGet方法中获取系统当前时间,并将其放入HttpServletRequest对象中,最后转发到/WEB-INF/jsp/hello.jsp页面。
4)使用WebServlet注解并配置请求路径,对外发布Servlet服务。
不需要再web.xml中添加任何的servlet配置,因为我们使用了Servlet3.o规范提供的WebServlet注解。除此以外,还有很多的注解或API,会让我们拥有一个“零配置”的web.xml。
2.编写一个JSP页面
HelloServlet已经完成了,我们接着写一个hello.jsp。在webapp目录下创建jsp目录,并在目录下创建一个hello.jsp,编写如下代码:
hellohello world!
当前时间:${currentTime}
使用jstl表达式来获取从HelloServlet里传递过来的currentTime请求。