关于实验一的Jsp笔记——Servlet初认识

关于实验一的Jsp笔记 Part1:Servlet部分*


各种函数

用到的函数大全(按顺序)

// 主要就是这几个函数
request.getParameter(String ElementName)
request.setAttribute(String ElementName, String Value)
request.getRequestDispatcher(forward)

servlet.java里的函数

  • 首先是要把自己写的 TestServlet继承HttpServlet
  • 重写doGet和doPost方法

明确

首先明确一点,就是关于servlet的各种对象

  • HttpServletRequest对象

客户发送给服务器的请求信息被封装在HttpServletRequest对象中,其中包含了由浏览器发送给服务器的数据,这些数据包括请求参数、客户端有关信息等。

Request说白了就是“请求”,是“客户->服务器”的。
他是ServletRequest的子类

  • HttpServletResponse对象
    Response是“响应”,是“服务器->客户”的。
    他是ServletResponse的子类

分析doGet函数

// doGet响应
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{}

这个函数的流程:

  • 获取用户在jsp界面的输入
  • 创建模型对象(Bean对象)
  • 调用Bean对象的自带函数来进行验证,返回值a
  • 根据a的不同情况进行页面跳转

第一步、获取输入
String head = request.getParameter("head");     // 类似于getElementById
String foot = request.getParameter("foot");
String keywords = request.getParameter("keywords");
  • 页面首先由客户端提交给服务器,所以使用request对象,客户端request给服务器。
    过程是,用户输入->确定->request对象接收到了数据->request.getParameter获取数据

这里主要采用的是getParameter()函数,这一类函数有

public String getParameter(String name)			// 返回对应name的value
public String[] getParameterValues(String name) // 返回对应name的所有value
public Enumeration getParameterNames()			// 返回所有请求参数
public Map getParameterMap()					// 返回包含所有请求参数的Map对象

注意!
这个响应对应的form对象的数据处理,这个我就略过了…因为也不是啥大问题,就Java web教材第49页有介绍。

第二步、创建对象模型
Bean user = new Bean();
第三步、验证数据
// 调用业务方法进行验证
boolean b = user.validate(head,foot,keywords);
  • 这里比较特殊,因为这个只需要进行小验证对比就可以,实际上应该是有一个数据库Sql数据库,然后把id传过去,通过这个Bean对象的函数来验证数据库里是否有他的账户和密码,然后返回正确错误才对。
  • 但是这个直接验证就可以了。
  • 总而言之,这个地方返回个boolean就可以
第四步、发送响应

我们这个小项目这里的发送响应,得到的其实就是一个小的页面跳转

      if(b){
         request.setAttribute("head", head);          // 返回页面的id里面的value
         request.setAttribute("foot", foot);          // 这个是和el表达式连用的
         request.setAttribute("keywords", keywords);
         // 目标转向文件是success.jsp
         forward = "success.jsp";

  • 就以这个为例子,这里的setAtteribute的意思是,用request的函数,来对String value进行修改
    这种就类似于数据结构课学的C语言的那种传指针修改的样子。
  • 总之,修改完了request传给的value,把forward字符串修改成success.jsp,进入下一步

可以看到,这里涉及到的是如何通过使用请求对象request来存储数据,类似的还有

public void setAttrbute(String name,Object obj)
public Object getAttribute(String name)
public Enumeration getAttributeNames()
public void removeAttribute(String name)
第五步、完成跳转
     // 获取Dispatcher对象
   RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
      // 完成跳转
      dispatcher.forward(request,response);     // 跳转的实现

  • 跳转功能的实现,采用的是request.getRequestDispatcher(String url)函数完成的

关于第四步和第五步的说明
其实响应的方式有两种,
第一种是转发请求,一种是重定向

  • RequestDispatcher接口定义了两个方法,
// 将请求转发到服务器上的另一个动态或静态资源
public void forward(ServletRequest request, ServletResponse response)
// 将控制转发到指定的资源,并将其输出包含到当前输出中
public void include(ServletRequest request, ServletResponse response)

我们这里做的就是一个小的跳转

  • 输出流
// 动态残生页面的输出函数
PrintWriter out = response,getWriter();
// 二进制数据
ServletOutputStream sos = response.getOutputStream();
// 重定向
public void senRedirect(String location)

总之就这些,涉及到servlet的大概就这些比较重要
其实无论如何,都是客户端与服务器的交流,要么S2C要么C2S

  • 处理请求 request
  • 发送响应 response

就这吧,先记到这

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值