再探servlet

再探servlet

什么是servelt

Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用servlet可以接受表单传来的参数,可以获取数据库中的数据或者其他源的记录。
servlet主要执行以下几个任务:

  1. 读取客户端发送的显示数据(表单)。
  2. 读取客户端发送的隐式HTTP请求数据(cookie等)
  3. 处理数据并生成结果(例如:访问数据库得到数据)
  4. 发送显式数据到客户端(文档)
  5. 发送隐式HTTP响应到客户端(比如文档类型,cookie等)

使用servlet示例

1,创建servlet.java文件。

创建一个类,需要继承HttpServlet,根据需要重写doGet和doPost方法。
PrintWriter 可以将数据传递到前端。
pw.flush()和pw.close()将PrintWriter关闭

public class QueryProvinceServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //处理get请求
        String proid = req.getParameter("proid");
        System.out.println(proid);
        String name = "默认是无数据";
        //访问dao,查询数据库
        if (proid!=null&&!"".equals(proid.trim())){
            ProvinceDao dao = new ProvinceDao();
           Province province = dao.queryProvinceNameById(Integer.valueOf(proid));
            ObjectMapper objectMapper = new ObjectMapper();
            name = objectMapper.writeValueAsString(province);
        }
//        把获取到的数据,通过网络传给ajax中的异步对象,响应结果数据
//        指定服务器端(servlet)返回给浏览器的是json格式的数据
        resp.setContentType("application/json;charset=utf-8");
        PrintWriter pw = resp.getWriter();
        pw.println(name);
        pw.flush();
        pw.close();
    }
}

2,配置web.xml

每配置一个servlet都要配置一个servlet-mapping
url-pattern是url地址。

    <servlet>
        <servlet-name>QueryProvinceServlet</servlet-name>
        <servlet-class>com.cjh.controller.QueryProvinceServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>QueryProvinceServlet</servlet-name>
        <url-pattern>/queryProvince</url-pattern>
    </servlet-mapping>

3,前端请求在web.xml配置的url路径

这里是get请求方式,执行servlet类时,走doGet方法。
前端请求到该路径的时候,就会执行在web.xml里面配置的对应名称的servlet。可以在该servlet中进行数据库操作,并将得到的数据通过PrintWriter对象响应到前端。

      xmlHttp.open("get","queryProvince?proid="+proid,true);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值