JavaWeb笔记 2020.4.27持续更新

Web简介

Web应用程序

软件开发三大方向

  • 桌面应用程序(QQ/Office)
  • Web应用程序(京东/天猫)
  • 嵌入式应用程序(Android)

Tomcat服务器简介

  • Apache Jakarta的开源项目
  • JSP/Servlet容器
  • 打开方式:apache-tomcat/bin/startup.bat
  • 关闭方式:apache-tomcat/bin/shutdown.bat
  • 运行地址:http://localhost:8080

Tomcat服务器的目录结构

JavaWeb笔记 2020.4.27持续更新_第1张图片

手工编写第一个Web程序

  1. 在WebApps创建项目目录

    在这里插入图片描述

  2. 编写index.jsp

    
    
    
        
        
        我的个人主页
    
    
        

    欢迎大家访问我的个人主页


  3. 创建WEB-INF目录

    在这里插入图片描述

       
    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
      version="4.0"
      metadata-complete="true">
           
      <welcome-file-list>
        <welcome-file>welcome.jspwelcome-file>
      welcome-file-list>
    web-app>
    
    1. WEB-INF是Java的WEB应用的安全目录。(只有服务端可以访问,客户端不能访问)
    2. web.xml,项目部署文件(配置默认欢迎页)
    3. classes文件夹,用以放置*.class文件
    4. lib文件夹,用于存放需要的jar包
  4. 测试运行

Eclipse编写Web程序

  1. 新建Donamic Web Project
  2. 新建JSP文件
  3. 编写之后在servers标签右键->Add and Remove部署到Tomcat服务器上
  4. start Tomcat
  5. http://localhost:8080/虚拟路径

Web项目虚拟路径

  • 项目右键->Properties->Web Project Settings->Context root
  • http://localhost:8080/虚拟路径

Tomcat服务器端口号

  • 默认为8080

  • 修改Tomcat/conf/server.xml->Connector标签->port

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    

静态网页和动态网页

静态网页

  • 表现形式:网页内容固定,不会更新
  • 所需技术:HTML、CSS

动态网页

  • 表现形式:网页中内容通过程序动态显示,自动更新。
  • 所需技术:HTML、CSS、数据库技术,至少一门高级语言(Java、C#、php)、Javascript、XML等。主流的动态网页脚本技术(Jsp、Asp.net、php)

JSP基础语法

JSP简介

  • JSP全名为Java Server Pages
  • 根本是一个简化的Servlet设计
  • 实现了在Java当中使用HTML标签
  • JSP是一种动态网页技术标准,也是JAVAEE的标准
  • JSP与Servlet一样,是在委屈端执行的

常见动态网站开发技术对比

JSP

  • Java平台,安全性高,适合开发大型的,企业级的Web应用程序

    分布式计算框架Hadoop

    网上证券交易所,电子银行,网上营业厅

ASP.net

  • .Net平台,简单易学。但是安全性以及跨平台性差

    基于开发组件,拖拉拽,微软系

PHP

  • 简单,高效,成本低开发周期短,特别适合中小型企业的Web应用程序开发

    LAMP:Linux+Apache+MySQL+PHP

JSP基础语法

JSP页面元素构成

指令

page指令
  • 通常位于jap页面的顶端,同一个页面可以有多个page指令
<%@ page 属性1="属性值1" 属性2="属性值2" 属性n="属性值n"%>
<%@ page language="java" import="java.util.*" contenyType="text/html; charsey=utf-8"%>

JavaWeb笔记 2020.4.27持续更新_第2张图片

include指令
  • 将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句
taglib指令
  • 使用标签库定义行的自定义标签,在JSP页面中启用定制行为

小脚本

  • 在JSP页面中执行的java代码
<% Java代码 %>					//要加分号
<% out.println("Hello World"); %>	//在网页输出Hello World

声明

  • 在JSP页面中定义变量或者方法
<%! Java代码 %>
<%! String s = "张三";	//声明了一个字符串变量
	int add(int x,int y)	//声明了一个返回整型的函数,实现求和
    {
        return x+y;
    }
%>

表达式

  • 在JSP页面中执行的表达式
<%=表达式 %>		//注意:表达式不以分号;结束
<%=s %>				//调用上面声明的变量
<%=add(10,5) %>		//调用上面声明的add方法

注释

  • HTML注释

    		//客户端查看源代码可见
    
  • JSP注释

    <%-- html注释 --%>	//客户端不可见
    
  • JSP脚本注释

    <% //单行注释
    /**/多行注释 %>			//客户端不可见
    

静态内容

JSP生命周期

  • jspService()方法被调用来处理客户端的请求。对于每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及相应时间。也要注意多线程编程带来的同步问题,由于该Servlet始终驻于内存,所以相应是非常快的。

JavaWeb笔记 2020.4.27持续更新_第3张图片

JSP内置对象

内置对象简介

  • JSP内置对象是Web容器创建的一组对象,不使用new关键字,就可以使用的内置对象
<%
int[] value = {60,70,80};
for (int i :value){
    out.prinln(i);		//out是内置对象
}
%>

九大内置对象

  • out request response session application
  • 不常用(Page pageContext exception config)

Web程序的请求响应模式

  • 用户发送请求(request) HTTP请求
  • 服务器给用户响应(response) HTTP响应

缓冲区

  • 缓冲区:Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据

四种作用域范围

out对象

  • out对象是JSPWriter类的实例,是想客户端输出内容常用的对象

常用方法

  1. void printlin()向客户端打印字符串
  2. void clear()清除缓冲区的内容,如果在flush之后调用会抛出异常
  3. void clearBuffer()清除缓冲区的内容,在flush之后调用不会抛出异常
  4. void flush()将缓冲区内容输出到客户端
  5. int getBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为0
  6. int getRemaining()返回缓冲区还剩余多少可用
  7. boolean isAutoFlush()返回缓冲区满时,是自动清空还剩抛出异常
  8. void close()关闭输出流

	<% 
	out.println("

静夜思

"); out.println("床前明月光
"); out.println("疑是地上霜
"); out.flush(); //out.clear();//会抛出异常 out.clearBuffer();//不会抛出异常 out.println("举头望明月
"); out.println("低头思故乡
"); %> 缓冲区大小:<%=out.getBufferSize() %>byte
剩余缓冲区大小:<%=out.getRemaining() %>byte
缓冲区是否清空:<%=out.isAutoFlush() %>

JavaWeb笔记 2020.4.27持续更新_第4张图片

request/response对象

表单提交方式get与post区别

<form name="regForm" action="动作" method="提交方式">
form>
  • get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性低但效率比post方式高。适合提交数据量不打,安全性不高的数据。

    比如:搜索、查询等功能

  • post:将用户提交的信息封装在HTML HEADER内。适合提交数据量打,安全性高的用户信息。

    比如:注册、修改、上传等功能

request对象

  • 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出相应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。

常用方法

  1. String getParameter(String name)返回name指定参数的参数值
  2. String[] getParameterValues(String name)返回包含参数name的所有值得数组
  3. void setAttribute(String,Object)储存此请求中的属性(键值对)
  4. object getAttribute(String name)返回指定属性的属性值,映射
  5. String getContentType()得到请求体的MIME类型
  6. String getProtocol()返回请求用的协议类型及版本号
  7. String getServerName()返回接受请求的服务器主机名
  8. int getServerPort()返回服务器接受此请求所用的端口号
  9. String getCharacterEncoding()返回字符编码方式
  10. void setCharacterEncoding()设置请求的字符编码方式
  11. int getContentLength()返回请求体的长度(以字节数)
  12. String getRemoteAddr()返回发送此请求的客户端IP地址
  13. String getRealPath(String parh)返回虚拟路径的真实路径
  14. String request.getContextPath()返回上下文路径

session对象

application对象

其他内置对象

乱七八糟

常用方法

  • 查看页面源代码

    1.鼠标右键>>查看页面源代码

    2.view-source:http://url

常用代码

<% request.setCharacterEncoding("utf-8");//解决中文乱码 %>

你可能感兴趣的:(Java,JavaWeb,JSP)