一、JSP入门

1.1 JSP的本质就是一个java类(servlet) 单实例多线程


1.2 JSP中书写代码的三种方式

1 声明式
2.小脚本
3.表达式


1.3 小脚本和声明式之间的区别

1.小脚本中定义的变量是局部变量,声明式中的变量是成员变量
2.在小脚本中不可以定义方法:因为自己本身就是一个方法;声明式中可以定义方法
3.在声明式中不可以使用内置对象:内置对象相当于一个类的实例,声明式中还没有实例化,不能调用该对象的方法;在小脚本中可以使用内置对象


1.4 JSP中三种注释方式

1.JAVA注释 --> //注释
2.HTNL注释 --> <!--注释-->
3.JSP注释 --> <%--注释--%>


二、Servlet入门

2.1 想让浏览器找到该页面,必须在 web.xml中进行配置

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>day01.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

2.2 解决服务器向浏览器发送数据的中文乱码问题

resp.setContentType("text/html;charset=utf-8");

2.3 页面跳转

req.getRequestDispatcher("文件名.jsp").forward(req,resp);

2.4 Servlet的生命周期

类加载
实例化:无参构造
初始化:init
服务请求:service
销毁操作:destroy


2.5 类加载的时机

1、用户第一次访问servlet的时候(默认)
2、启动服务器时进行类加载:在配置文件中设置

<load-on-startup>0</load-on-startup>

2.6 配置全局参数、局部参数和读取全局参数、局部参数

配置全局参数:

<context-param>
    <param-name>Encoding</param-name>
    <param-value>GBK</param-value>
</context-param>

读取全局参数:

String Encoding = this.getServletContext().getInitParameter("Encoding");

配置局部参数:

<init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
</init-param>    

读取局部参数:

String encoding = this.getInitParameter("encoding");

2.7 解决浏览器向服务器发送数据的中文乱码问题

解决POST方式提交的中文乱码问题:

request.setCharacterEncoding("UTF-8");

解决GET方式提交的中文乱码问题:
方式一:
1.获得元素编码的字节数组

byte[] bytes = username.getBytes("ISO-8859-1");

2.把元素编码的字节数组转化为UTF-8编码格式

String username1 = new String(bytes,"UTF-8");

方式二(推荐使用):
在server.xml中指定对应的服务器编码

URIEncoding="UTF-8"