JSP基础:二、Servlet

 Server--Servlet
一、复习
 JSP---Servlet
 JSP本质就是一个Servlet,加载到虚拟机时候翻译成Java程序。
二、新内容 Servlet       javax.servlet包和javax.servlet.http包
 一、Servlet概述
      运行在服务器端的Java代码
 二、开发我们的第一个Servlet(手工创建)
  1、新建一个Web Project
  2、新建一个Class,命名为MyServlet,继承于类HttpServlet。
  3、重写HttpServlet类的service方法。
  4、配置WebRoot文件夹下WEB-INF下的web.xml文件
  定义一个servlet服务
  服务的名字叫做:MyServlet(名字可以改,自己定义)
  这个服务执行的代码是:com.style.servlet.MyServlet里的service方法
    <servlet>
       <servlet-name>MyServlet</servlet-name>
       <servlet-class>com.style.servlet.MyServlet</servlet-class>
   </servlet>
  定义一个servlet服务和url的映射关系
  服务的名字叫做:MyServlet(跟上面定义的名字一样)
  在浏览器里请求的路径是:/hello (名字可以改,自己定义)
    <servlet-mapping>
       <servlet-name>MyServlet</servlet-name>
       <url-pattern>/hello</url-pattern>
    </servlet-mapping>
  5、当我们在浏览器上输入对应的http://localhost/项目上下文/hello的时候,服务器就通过web.xml找/hello上下文对应的servlet-name,再通过servlet-name找到对应的Class执行里面的service方法。(一定要明白,是在服务器上执行!)
 三、HttpServlet的创建(工具创建)
  1、新建一个Web Project,创建一个包com.lixiang.servlet
  2、右键点击包,新建一个servlet:New--Servlet
       在Name后填入Servlet名字,下方勾选覆盖父类的方法doGet、doPost
  3、点击next,修改Servlet/JSP Mapping URL:  /xxx (配置访问的URL)
  4、Servlet创建好以后,将Java Web Project发布到web服务器下面。
   注意!对Servlet的修改配置都必须重启服务器!修改JSP不用!
  5、访问Servlet的URL默认调用doGet方法。(代码里加控制台输出验证)
  6、request,response,out三个对象,介绍Servlet里out的html标签
  7、常见错误:
       Mapping URL定义的url不正确、web.xml里面的配置文件不正确。
       404错误:表示页面没有找到,检查url写得是否正确。
       500错误:页面报ClassNoFoundException
        web.xml配置文件里Servlet的包和类写得是否正确。
  
  
 四、Servlet工作原理
  1、浏览器请求web服务器资源,web服务器根据url将请求发送给Servlet,web服务器将创建两个对象,HttpServletRequest类型的request和HttpServletResponse类型的response。
  HttpServletRequest类型的request :请求对象
  HttpServletResponse类型的response :响应对象
  PrintWriter out          :向文本输出流打印对象的格式化表示形式
  2、代码步骤:
   1、response.setContentType("text/html");
        给响应对象设置一个内容类型,返回一个html内容的信息。
   2、PrintWriter out = response.getWriter();
        通过响应对象拿到向浏览器写数据的PrintWriter out对象。
   3、使用out.println方法向流中写入数据。
   4、out.flush(); 刷新清空该流的缓冲
   5、out.close(); 关闭该流并释放与之关联的所有系统资源。
  3、代码示例:
  response.setContentType("text/html;charset=utf-8");
  request.setCharacterEncoding("utf-8"); //代码位置!一定要放在最上面
  PrintWriter out = response.getWriter();
  out.println("Hello World!");
  out.println("你好,赵日天!");  //这里会产生响应乱码,怎么解决?
  out.flush();
  out.close();
   ★小技巧:Tomcat启用debug模式,可以不重启服务器调试!
  4、JSP本质上就是一个Servlet。
 五、Servlet获取参数代码示例:
  LoginServlet.java
  请求乱码解决方式:
  request.setCharacterEncoding("utf-8");
  
  用户登录实例步骤:
  //解决请求乱码问题
  request.setCharacterEncoding("utf-8");
  //解决响应乱码问题
  response.setContentType("text/html;charset=utf-8");
  response.setCharacterEncoding("utf-8");
  //获取前一个页面传递过来的参数
  String name = request.getParameter("name");
  String pwd = request.getParameter("pwd");
  //通过响应对象拿到向浏览器写数据的PrintWriter out对象。
  PrintWriter out = response.getWriter();
  //向out流写入数据
  out.println("<h1>用户名是:"+name+",密码是:"+pwd+"</h1>");
  //刷新清空该流的缓冲
  out.flush();
  //关闭流
  out.close();
 
  思考:什么是请求乱码?什么是响应乱码?怎么解决? 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值