(个人复习用)jsp web开发重点(待补充)

目录

  • 一、JSP简介(Sun公司开发)
    • JSP特点
    • Tomcat 相关
    • JSP原理
  • 二、JSP语法
    • JSP页面组成
    • JSP注释
    • JSP指令标记
      • page(可以不放在开头!只是出于可读性)
        • contentType(响应类型、字符编码)
        • language(JSP使用的脚本语言)
        • import(声明包、类)
        • session(是否需要session,默认是true)
        • buffer(out的缓冲区大小,默认8kb,也可以设置为none,即不使用)
        • autoflush(out缓冲区被填满时是否自动刷新,默认为true)
        • isThreadSafe(是否可多线程访问,默认为true)
        • info(为jsp准备一个常用且经常修改的字符串)
      • errorPage(若该页面有exception则显示,默认是false)
        • isErrorPage(其他 JSP 页面的错误页面,默认是false)
      • include(静态插入文件,不会被编译器执行)
    • JSP动作标记
      • include动作标记(动态插入文件,运行时才将文件加入,会被编译器执行)
      • param 动作标记(name-value,类似map)
      • forward 动作标记(跳转页面)
      • useBean动作标记(创建并使用JavaBean)
    • JSP脚本元素
    • 变量、方法<%! %>(定义的变量与方法在整个jsp内都有效(全局变量、全局方法))
    • java程序片<% %>(定义的变量为jsp页面的局部变量)
    • java表达式<%= %>("<%="是一个完整的符号,以字符串形式返回)
  • 三、JSP内置对象(不需要声明就可以使用)
    • request对象(用户->服务器,封装用户提交信息)
      • HTML标记
        • < form >
        • < input >
        • < select > < option > 下拉列表
        • < textArea >
        • < table >
        • < image >
        • < embed >(播放音频)
        • 超链接
    • response对象(服务器->用户,封装了对用户请求的动态响应)
      • 动态响应contentType
      • HTTP文件头(动态)
      • response重定向(无参数跳转页面)
      • response状态行
    • session对象(可以再多个jsp页面反复使用)
      • 对象id
      • URL重写(用户不支持Cookie时可以使用,保证session唯一性)
      • 存储/读取数据
      • 生存期限
    • application对象(所有用户共享,ServletContext实例)
      • 常用方法
    • out对象(输入流,javax.servlet.jsp.JspWriter)
    • pagecontent(获取页面out、request、reponse、session、application 等对象)
    • config(取得服务器的配置信息)
    • page(类似于this指针)
    • exception(显示异常信息)
  • 四、JavaBean
    • 编写、使用Javabean
      • 特点
      • 命令规则
      • 保存javabean的字节码(.class文件)
      • 创建bean(JSP动作标记:useBean)
      • bean加载原理
    • 获取、修改beans的属性
    • beans的辅助类(用import引入JDK提供的类或自己写的类)
  • 五、Java Servlet(在服务器创建能响应用户请求的对象)
    • 部署、创建与运行
      • 传递参数
    • 工作原理
      • 生命周期
    • 通过JSP页面访问servlet
      • 通过表单传递数据
      • 通过超链接访问
    • 共享变量(用户共享servlet的成员变量)
    • doGet和doPost
    • 重定向与转发
    • 使用session
  • 六、MVC模式
    • MVC模式介绍
    • 模型的生命周期与视图更新
      • request、session、application周期的javabean
  • 七、JSP中使用数据库
    • MySQL数据库管理系统
    • JDBC(提供访问数据库的API)
    • 连接MySQL数据库
    • mysql语句相关
    • 用结果集、非结果集操作数据库中的表(ResultSet)
    • 预处理语句(PreparedStatement)
      • 优点
      • 使用通配符(用?代替字段值)
    • 事务(commit,一次性处理多个sql)
      • **事务四大特性(ACID)**
    • 常见数据库连接

一、JSP简介(Sun公司开发)

JSP特点

与平台的无关性。
动态页面与静态页面分离。

Tomcat 相关

Tomcat是一个JSP引擎(统一管理并运行jsp的web应用程序)。
安装了JSP引擎的计算机被称为JSP服务器
测试Tomcat是否能启动成功:打开bin/startup.bat后,输入localhost:8080(或者127.0.0.1)
修改Tomcat端口:打开conf/server.xml,修改Connector标签下的port
当修改为80时,网址可以不输入“:80”(80是http默认端口)
部署jsp项目:将整个工程文件放入webapps下
访问jsp项目:localhost:8080/工程名/jsp名
当单个的jsp放在Root目录下时,可以不用输入包名直接访问,即localhost:8080/jsp名
可以在conf/server.xml下修改jsp目录而不用放在webapps下

<Context path="路径名" docBase="项目的绝对路径" debug="0" reloadable="true"/>

JSP原理

jsp引擎把jsp页面转译为java文件,java文件通过编译后生成字节码文件(.class),用字节码文件响应用户需求
当多用户访问同一jsp时,Tomcat服务器会为每一个用户开一个线程。
1.处理html标记符号并显示
2.处理jsp标记
3.处理“<%”、“%>”之间的java程序片并显示

二、JSP语法

JSP页面组成

1.普通的HTML标记符
2.JSP标记
3.变量、方法<%! %>(定义的变量与方法在整个jsp内都有效(全局变量、全局方法))
4.java程序片<% %>(定义的变量为jsp页面的局部变量)
5.java表达式<%= %>("<%="是一个完整的符号,以字符串形式返回)

JSP注释

HTML注释:<!-- 注释内容 -->
JSP注释:<%-- --%>

JSP指令标记

page(可以不放在开头!只是出于可读性)

多种属性:<%@ page 属性1="XXX" 属性2="XX" ...%>
单条属性:<%@ page 属性="xxx" %>

contentType(响应类型、字符编码)

HTML解析器执行:<%@ page contentType="text/html;charset=UTF-8"%>
用本地MS-word执行:<%@ page contentType="application/msword" %>
默认值:"text/html ; charset=ISO-8859-1",不允许多次给contentType指定不同的值!

language(JSP使用的脚本语言)

<%@ page language="java" %>

import(声明包、类)

多个import<%@ page  import="XXX", "XXX" %>
单个import<%@ page  import="XXX" %>
JSP页面默认import属性:"java.lang.*""javax.servlet.*""javax.servlet.jsp.*""javax.servlet.http.*"

session(是否需要session,默认是true)

<%@ page session="true/false" %>(true时可以使用session)

buffer(out的缓冲区大小,默认8kb,也可以设置为none,即不使用)

eg:<%@ page buffer= "24kb" %>

autoflush(out缓冲区被填满时是否自动刷新,默认为true)

当该值为false时,如果out缓存区填满,就会出现缓存溢出异常。
当buffer的值为none时,autoflush只能是true。

isThreadSafe(是否可多线程访问,默认为true)

若isThreadSafe为false时,其他用户只能排队等待。

info(为jsp准备一个常用且经常修改的字符串)

<%@ page info= "we are students" %>
调用getServletInfo()

errorPage(若该页面有exception则显示,默认是false)

<%@ page ErrorPage="true"%>

isErrorPage(其他 JSP 页面的错误页面,默认是false)

<%@ page isErrorPage="true"%>

include(静态插入文件,不会被编译器执行)

<%@ include file= "文件的URL " %>

JSP动作标记

include动作标记(动态插入文件,运行时才将文件加入,会被编译器执行)

<jsp:include page= "文件的URL"/>
或者 <jsp:include page= "文件的URL">
         param子标记
</jsp:include>(将param的值传给文件里)

param 动作标记(name-value,类似map)

<jsp:param name= "名字"  value= "指定给param的值"/>

forward 动作标记(跳转页面)

<jsp:forward page="要转向的页面" /><jsp:forward page="要转向的页面" >
      param子标记
</jsp:forward> (将param的值传到页面)

useBean动作标记(创建并使用JavaBean)

JSP脚本元素

变量、方法<%! %>(定义的变量与方法在整个jsp内都有效(全局变量、全局方法))

java程序片<% %>(定义的变量为jsp页面的局部变量)

java表达式<%= %>("<%="是一个完整的符号,以字符串形式返回)

三、JSP内置对象(不需要声明就可以使用)

request对象(用户->服务器,封装用户提交信息)

信息编码:request.setCharacterEncoding("UTF-8");
getProtocol():获取用户向服务器提交信息所使用的通信协议
getServletPath():获取用户请求的JSP页面文件的目录。
getContextPath():获取用户请求的当前Web服务目录
getRemoteAddr():获取用户的IP地址。
getRemoteHost():获取用户机的名称(如果获取不到,就获取IP地址)
getServerName():获取服务器的名称
getServerPort():获取服务器的端口号

HTML标记

< form >

<form  action= “JSP页面”  method="get/post">
    提交手段
</form>(用request.getParameter()获取)
使用get方法提交的信息会在提交的过程中显示在浏览器的地址栏中
post方法提交的信息不会显示在地址栏中
提交的内容可以是文本框、列表、文本区。

< input >

<input  type="输入对象的GUI类型"  name= "名字"/>
文本框text:<input type="text" name="me"  value="hi"/>
单选框radio:<input type="radio"  name="rad"  value="red"  checked="java" />
复选框checkbox:<Input type="checkbox"  name= "ch"  value="pink"     checked="java" />
(多个选项可以采用相同name和type但value不同的方式)
口令框password:<input type= "password"  name= "me" size= "12"  maxlength="30"/>
隐藏hidden:<input type= "hidden"  name="h"  value= "123"/>
提交submit:<input type= "hidden"  value= "123"/>
重置reset:<input type="reset"/>

< select > < option > 下拉列表

<select  name="myName" size=""/>
  <option  value="item1"/>
  <option  value="item2"/></select>
<option>是子标记,size是同时可见的数目

< textArea >