Hello!小刘又回来了,今天给大家带来的是jsp的基本语法以及表单提交方式,不知道上一期的环境搭建还有没有小伙伴没有搞定的,如果有可以尽快私信我的,好了接下来我们步入主题,老规矩,先上思维导图
一,jsp的基本语法
先为大家解决一个藏在心里的疑问:
jsp是什么?为什么要学jsp?
JSP (全称:Java Server Pages)
是指: 在HTML中嵌入Java脚本代码
由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码
然后将生成的整个页面信息返回给客户端
如图所示:
下面就是jsp的一些内部内容了(思维导图可见)
1,jsp的运行原理
SP的本质就是一个Servlet,JSP的运行之前会先被Tomcat服务器翻译为.java文件,然后在将.java文本编译为.class文2件,而我们在访问jsp时,处理请求的就是那个翻译后的类。
2.jsp模板元素与脚本片段
jsp中静态的html内容称之为模板元素。在静态的html内容中可以嵌套jsp的其他各种元素来产生动态内容和执行业务逻辑。
jsp模板元素定义了网页的基本框架,即定义了页面的结构和外观
jsp中的脚本片段实际上就是jsp页面的java代码
3.jsp表达式
<!--jsp表达式:将一个java变量或表达式的计算结果输送到页面上(客户端) -->
<%=a>b?a:b %><!-- 相当于out.print(a); -->
4. jsp声明(包括获取系统当前时间)
<%
//打印系统当前时间
//js的setInterval/setTimeout递归
Date d=new Date();//获取系统当前时间
out.print(d.toLocaleString());//本地格式打印
out.print("哈哈");
//局部变量
int a=10;
int b=20;
%>
<!--jsp表达式:将一个java变量或表达式的计算结果输送到页面上(客户端) -->
<%=a>b?a:b %><!-- 相当于out.print(a); -->
<!-- jsp声明:jsp页面中声明变量和方法 -->
<%!
int xx=8888;//2.在此处的变量跟上述的变量有何区别?全局变量=成员变量
public int getMax(int a,int b){
//out.print("hha");//1.在此处为何不能用out,因为作用域原因
return a>b?a:b;
}
%>
5,jsp注释方式与html注释的区别
<!-- 这是html注释:在源代码中可见 -->
<%--这是jsp注释:源代码中不可见 --%>
6,jsp常见错误代号
404,路径出现错误,找不到页面
500,代码有误
7.jsp内置对象之request
【String getParameter(String name)】:根据name值得到value值()
【String[ ] getParameterValues(String name)】:根据name值得到多个value值 例如:爱好
【void setCharacterEncoding(String charset)】:设置编码方式
二,表单提交方式
表单提交方式两种
1.get(默认)安全性低 地址栏可见信息 有数据长度的限制
2.post 反之 一般表单提交都用post
我们先做一个简单的登陆页面
form表单中的action为表单提交到的页面
注意网页地址为logi.jsp
点击登陆之后可以发现网页地址发送了改变,变成了我们代码中action中的地址
我们来看看dologin的源代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
//纯业务逻辑 java代码
//request能接收哪两种方式的值?1.表单 2.地址栏传参 ?sname=abc&spwd=233
//接收表单提交过来的值:用户名 密码
//设置编码方式 支持中文
request.setCharacterEncoding("utf-8");//req.setc
//根据name值取value值
String name=request.getParameter("sname");//req.getp
String pwd=request.getParameter("spwd");
out.print(name+""+pwd);
//jdbc连接Oracle
%>
其中用到了jsp中的内置对象
【String getParameter(String name)】:根据name值得到value值()
【void setCharacterEncoding(String charset)】:设置编码方式
注意:要先设置编码方式,再获取登陆页面的值,反之无效,且对象括号中的值要与登陆页面中的name值保持一致
好了,以上就是我们的今日内容,透露一下明日内容为:页面跳转方式&JDBC,没错,咱们要开始连接Oracle了,猿友们,明日此时见^_^