Servlet

185 阅读3分钟

###1、WEB技术概述

  • 1、什么是Web
    • Internet是一个链接世界上计算机的物理网络
    • Web是建立在Internet上的一种服务
    • Web是Internet上多种不同的服务之一,其他还包括E-mail、流媒体、FTP等
  • 2、Web工作原理
    • 作为一种服务,Web定义两方面:Web客户端(Web游览器)和Web服务器如何通过Internet通讯,当你访问一个Web站点时,你就建立了这两者之间的关系。
    • 首先,Web游览器向Web服务器发送消息请求一个它期望的指定页面,Web服务器用适当的消息响应它。
    • 这种关系叫做“请求/响应模式”
    • 客户端,这里是游览器,请求一个特殊资源,比如一个Web页面,服务器如果有,就响应该请求。
  • 3、URL
    • URL:统一资源定位符,Web上的每个资源都有唯一的地址,采用的就是URL格式。
  • 4、HTTP协议
    • Hypertext Transfer Protocol:超文本传输协议,它是以TCP/IP为基础的高层协议,用于定义游览器与web服务器之间交换数据的过程以及数据格式,Web基于请求/响应模型,它通过HTTP超文本协议来实现
    • HTTP是定义Web游览器与Web服务器如果通讯的协议
    • HTTP/1.1
      • 现在广泛使用的版本THTTP/1.1,相对于HTTP/1.0来说,最大的特点就是支持持续连接(即一个TCP连接上可以包含多次请求和响应)
      • 常见的HTTP状态码
        • 成功的状态码: 200 -- > 服务器成功返回网页
        • 失败的状态码:
          • 404 --->请求的网页不存在
          • 503 --->拂去我暂时不可用
          • 500 --->服务器内部错误 ###2、Tomcat介绍
  • Tomcat是Apache组织的jakarta项目中的一个重要子项目,是Sun公司推荐的运行的Servlet和JSP的容器(引擎),其源代码完全公开
  • 第一步:配置环境
    • java_home 记录路径(tomcat的bin目录)

    • 第二步:Java ee 中Window-->Presences-->Server-->Runtime Environments --->选择Add去找你的tomcat路径

    • 第三步:创建动态的web页面

    • 第四步:把需要的服务端添加到tomcat中

    • 第五步:创建第一个网页

    • 第六步:运行一个网页

      ###3、Servlet的基本概念

  • Servlet是一种独立于平台和协议的服务器端的java应用程序,可以生成动态的Web页面,Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令启动的java应用程序不同,Servlet由Web服务器进行加载,该Web服务器(如Tomcat)必须包含支持serlet的java虚拟机
  • Servlet基本运行方式
    • Servlet没有main()方法,他们受控于另一个java应用,这个java应用称之为Servlet容器,Tomcat就是这样的一个容器
  • 简单的登录页面代码
        //页面代码
        <body>hello servlet
        	<br/>
        	<a href="login.jsp">登录</a>
        </body>
        
        //登录界面代码
                <form action="${pageContext.request.contextPath}/LoginServlet" method="post">
        	用户名 :<input type="text" name = "username"><br/>
        	密    码:<input type="text" name = "password"><br/>
        	<input type = "submit" value = "登录">
        	</form>
        </body>
    	/**
    	 * GET请求 显示请求,在URL上会显示参数,参数大小不能超过4KB,请求速度快,不安           * 全
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		// 在这里我调用技能doPost(采用get的时候直接调用get,采用post的时候就调用post)
    		doPost(request, response);
    	}
    
    	/**
    	 * POST请求 隐式请求,不会再URL上显示参数,大小没有限制,请求速度慢,安全
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		// 获取客户端的表单数据
    		String username = request.getParameter("username");
    		String password = request.getParameter("password");
    		//在页面输出
    		PrintWriter pw  = response.getWriter();
    		
    		if ("admin".equals(username) && "123".equals(password)) {
    			pw.println("success");
    		} else {
    			pw.println("error");
    		}
    
    	}