二期项目马上就要来了,在此之前,影哥带我们做了一个新的JSP网站项目练手–JSP网络订餐网站。这个项目几乎集合了我们之前学习的所有内容,也算是一个回顾和温习,在这我重新把流程走一遍以作复习。
–华丽的分割线—————————————–
首先我们打开首页,在index中我们做了请求转发,地址不变,但引入到
resfood.action?op=show
并且传递参数op=show。
在xml中我们配置了servlet,将其引入到ResfoodServlet,我们继承了一个我们封装好的CommonServlet,在CommonServlet中我们设置了编码集,json的解析,以及toget() topost()的方法。
封装好的CommonServlet如下:
package com.yc.web.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.google.gson.Gson;
import com.yc.bean.JsonModel;
public abstract class CommonServlet extends HttpServlet {
private static final long serialVersionUID = -7107416144811556425L;
//private String encoding="utf-8";
//默认情况下:使用当前项目的路径 protected:子类可以取得到saveFilePath
protected String saveFilePath="";
protected String basePath="";
@SuppressWarnings("deprecation")
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到当前项目的真实路径
saveFilePath=request.getRealPath("/");
HttpSession session=request.getSession();
ServletContext application=session.getServletContext();
if(application.getAttribute("basePath")!=null){
basePath=(String) application.getAttribute("basePath");
}
super.service(request, response);
}
//输出json
public void outJson(HttpServletResponse response , JsonModel jsonModel) throws IOException{
//设置内容类型
response.setContentType("text/plain;charset=utf-8");
PrintWriter out=response.getWriter();
//将得到的参数转成Gson格式
Gson g=new Gson();
String s=g.toJson(jsonModel);
out.println(s);
out.flush();
out.close();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
}
}
在ResfoodServlet中我们重写doPost()方法,
并且判断其传递的参数的值,根据值写不同的处理方法