二 JavaWeb——Servlet入门

第二章:入门 第1节:入门知识点1:线程特性
? 1.Web应用服务器,为每个客户端的连接启动一个线程来服务
? 2.第一次访问时,服务器将创建一个该类的对象,并调用doXXX方法生成响应;多个客户端访问同一个时,不再创建新的对象,而且共用同一个对象 。可以说,是多线程单例的 。
知识点2:请求和响应接口 Web应用基于HTTP协议,HTTP协议基于请求/响应模型**
? 1.请求数据
? 通过浏览器给服务端的所有数据,称为请求数据
? 2.响应数据
? 通过服务器返回给客户端的所有数据,称为响应数据
? 3. API中,定义了请求接口和相应接口,用来封装和操作请求和响应数据
? 4.doXXX
? 服务器会创建请求对象和响应对象传递给doXXX方法,doXXX方法可以直接使用响应对象和请求对象
知识点3:利用对客户端不同方式的请求做出动态响应 客户端访问服务器端有三种方式**
? 1.直接从地址栏输入URL访问
? 2.在网页中点击超级链接访问
Go servlet
? 3.在网页中通过表单提交访问
<--没有指定method的表单,默认是get方式-->


? 4.编写(doGet、方法)
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 设置编码response.setContentType("text/html;charset=UTF-8");// 得到ipString ip = request.getRemoteAddr();// 输出ipresponse.getWriter().print("您好,目前调用的是doGet方法,您的IP地址是:" + ip);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 设置编码response.setContentType("text/html;charset=UTF-8");// 得到ipString ip = request.getRemoteAddr();// 输出ipresponse.getWriter().print("您好,目前调用的是doPost方法,您的IP地址是:" + ip);}
? 总结:
? 1、直接使用URL访问,是GET方式,调用doGet方法;
? 2、超级链接访问,是GET方式,调用doGet方法;
? 3、表单提交访问,取决form的属性的值,默认是get,指定为post时,调用方法;
知识点4: 中获取普通请求不同名或同名的参数的方法 (一)客户端向服务器传递请求参数的方式有2种
? 1.在url?name=value&name=value
? 直接在浏览器的地址栏输入url?name=value&name=value
? 在a标签里:
? 2.form表单传递请求参数
(二)服务器会将请求参数封装到请求对象中
? 当客户端请求服务器端的时,请求参数都会被发送到服务器,服务器会将请求参数封装到请求对象中
(三)如何从请求对象中得到请求参数的值
? 1.在浏览器的地址栏输入url?name=value&name=value,在取得请求参数的值
//写一个TestParamServlet,用于接收请求参数name,age的值protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//调用请求对象的getParameter(name)方法得到请求参数的值String name = request.getParameter("name");String age = request.getParameter("age");//把得到的请求参数的值显示出来 PrintWriter printWriter = response.getWriter();printWriter.print("name="+name);printWriter.print("age="+age);}