Offer收割机!阿里P7大神甩出JSP实战笔记,网友:信息量过大

Hello,今天给各位童鞋们分享JSP,赶紧拿出小本子记下来吧!


使用eclipse开发JavaWeb项目

为新建Javaweb_yq工作站增加Server实例

window > preference>server>Runtime Environment > add 添加本地tomcat所在安装目录

为项目MyJspProject 添加 tomcat和jdk支持

创建好MyJspProject项目

为该项目添加tomcat和jdk支持。项目右键build path add library 加入以下支持:JRE System Library和APache Tomcat

添加jdk是因为tomcat的字节码文件需要在JVM上运行,而jsp需要tomcat/lib中的servlet-api.jar。该jar可将jsp转为servlet

部署tomcat

**注意:**一般建议 将eclipse中的tomcat与 本地tomcat的配置信息保持同步:即 将eclipse中的tomcat设置为托管模式。

操作方式是:【第一次】创建tomcat实例之后, 双击,选择Server Location的第二项

否则默认是将tomcat备份到项目中,配置信息是与tomcat独立的。

Jsp

统一字符编码

设置jsp文件的编码,该编码用于Jsp编译成Java文件时,通过jsp文件中的pageEncoding属性设置。

设置浏览器读取jsp文件编码,通过jsp文件中的content属性设置。

一般将上述设置成一致的编码,推荐使用utf-8

文本编码,jsp文件以什么编码形式保存。可有以下三种方式设置:

eclipse全工作站设置。如下:

设置某个项目

设置单独文件

Jsp的页面元素

Jsp页面元素包括:HTML、Java代码(也就是嵌套在脚本中的javadiamante)、指令、注释

脚本

<%

局部变量、java语句

%>

2.

<%!

全局变量、定义方法

%>

3.

<%= 输出表达式>

源代码:

f12所看到的:

注意,out.println()不能回车; 要想回车:“”,即out.print()、 <%= %> 可以直接解析html代码。

指令

page指令

language属性:jsp页面使用的脚本语言

import : 导入类

pageEncoding: Jsp 文件翻译成java文件时的编码

contentType:浏览器解析jsp时的编码

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"  import="java.util.Date" %>

注释

html注释  ,可以被客户 通过浏览器查看源码 所观察到

java注释//     /*...*/

jsp注释<%-- --%>

Jsp九大内置对象

内置对象即不需要new也能使用的对象。

out 对象

输出对象,向客户端输出内容

request 对象

请求对象;存储“客户端向服务端发送的请求信息”

request对象常见方法:

response 对象

session对象

由于HTTP是无状态连接,每一次请求的数据都是相互独立且不会被保存的。为解决诸如购物车的问题。引入了cookie和session对象。

application 对象

<%="虚拟路径:" + application.getContextPath() +"
"%>

<%="绝对路径:"  +application.getRealPath("/MyJspProject")+"
" %>

打印结果:

虚拟路径:/MyJspProject

绝对路径:

E:\studydemo\JavaWeb_yq\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyJspProject\MyJspProject

config对象

配置独享,服务器配置信息

page

当前JSP页面对象,相当于Java中的this

exception异常对象

四种范围对象

范围由小到大

以上四种对象共有的方法:

注意

以上4个范围 对象,通过setAttribute() 赋值,通过getAttribute() 获取值

尽量使用范围小的对象,因为对象范围越大,造成的性能损耗越大。

请求转发与请求重定向

两种请求方式

请求主要有两种方式,一种是get另一种是post。get方式情形有:表单指定method=“get”、超链接形式(< a href > )、以及通过地址栏构造包含请求参数的链接的方式都属于get方式请求。

区别

get方式的在地址栏显示请求信息,但地址栏显能够容纳的内容优先,只有4-5KB。Post请求不会显示在地址栏,其将请求信息放置在请求体中。

文件上传操作必须使用post请求。

注册小项目

register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Insert title here

用户名:

密码:

年龄:

爱好

足球、

篮球、

乒乓球

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Insert title here

<%

//设置post请求编码

request.setCharacterEncoding("utf-8") ;

String name = request.getParameter("uname") ;

//name = new String(  name.getBytes("gbk") , "utf-8"); get方式修改编码

int age = Integer.parseInt(   request.getParameter("uage") ) ;

String pwd = request.getParameter("upwd") ;

String[] hobbies = request.getParameterValues("uhobbies") ;

%>

注册成功,信息如下:

姓名:<%=name %>

年龄:<%=age %>

密码:<%=pwd %>

爱好:

<%

if(hobbies !=null){

for(String hobby :hobbies)

{

out.print(hobby +" ");

}

}

%>

注册结果:

若不使用request.setCharacterEncoding(“utf-8”) ,则在输入中文时会出现乱码。

乱码问题的解决

首先统一请求的编码。

如果是get请求,则可以通过以下方式:

1、修改server.xml。修改tomcat安装目录下的server.xml,添加URIEncoding=“UTF-8”,如下

此种方法一劳永逸。

2、 还有一种比较鸡肋的方式就是每个变量都通过getBytes获得对应字节流,然后再转为对应编码。


如果是post请求则直接使用:

好啦,今天的文章就到这里,希望能帮助到屏幕前迷茫的你们!

你可能感兴趣的:(Offer收割机!阿里P7大神甩出JSP实战笔记,网友:信息量过大)