一.Jsp基本语法
1.JSP (Java Server Pages)是指:
在HTML中嵌入Java脚本代码
由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码
然后将生成的整个页面信息返回给客户端
2.B/S技术特点:用户端向客服端发送请求,服务器运行,访问数据库后回应客户端
3.web容器处理jsp文件请求需三个阶段:
翻译——>编译——>执行
第一次请求之后,Web容器可以重用已经编译好的字节码文件
注意:如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译
jsp页面的模板元素:HTML代码;
jsp页面的脚本片段:Java代码
在运行Web程序时,常犯的一些错误有:
未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务
未部署Web应用,就试图运行Web程序
运行时,URL输入错误
存放文件的目录无法对外引用,如:文件放入了WEB-INF、META-INF等文件夹
jsp中有五大常用内置对象:
jsp内置对象之request
【String getParameter(String name)】:根据name值得到value值
【String[ ] getParameterValues(String name)】:根据name值得到多个value值 例如:爱好
【void setCharacterEncoding(String charset)】:设置编码方式
<%@page import="java.util.Date"%><!--导包 -->
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="1"><!-- 可用meta标签实现时钟特效:每隔一秒刷新一次页面 -->
<title>Insert title here</title>
<!--此处引入了jQuery的类库 -->
<script type="text/javascript"src="js/jquery-3.3.1.js"></script>
<!--重起了一个script块 -->
<script type="text/javascript">
//此处写jquery语法!
/*回顾:鼠标移上事件 */
/* $("table tr").mouseover(function(){
alert("干啥?");
}) */
/* function $(sid){
return document.getElementById(sid);
}
//用js的setInterval()/setTimeout()递归?
function myf(){
var d=new Date();
var y=d.getFullYear();
var m=d.getMonth()+1;
var r=d.getDate();
var h=d.getHours();
var f=d.getMinutes();
var s=d.getSeconds();
var str= y+"年"+m+"月"+r+"日"+h+":"+f+":"+s;
$("d").innerHTML=str;
setTimeout("myf()",1000);
}
window.οnlοad=myf; */
</script>
</head>
<body>
<div id="d"> </div>
<%
//用js的setInterval()/setTimeout()递归?
Date d=new Date();//取系统当前日期
out.print(d.toLocaleString());//.toLocaleString()转成string类型 本地格式打印
%>
<!--(看源码的路径地址): 信息: CATALINA_BASE: D:\java系列\Javaweb\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 -->
<!--jsp表达式:将一个java变量或表达式的计算结果输出到页面(客服端) -->
<% int a=10; %>
<%=a %><!-- 相当于out.print(a); -->
<%!
int xx=888;//此处声明的变量是全局变量
public int getMax(int a,int b){
//out.print("哈哈哈");//out在此处不能用,1.因为作用域 局部变量
return a>b?a:b;
}
%>
<% out.print(getMax(10,20));//方法的调用1
//方法的调用2:先接收后调用
int m=getMax(445,3);
out.print(m);
%>
<%=getMax(234,55) %><!-方法的调用3 -->
<!-- 这是html注释:在源代码中可见 -->
<%-- 这是jsp注释:反之 --%>
</body>
</html>
jsp常见错误代号
404:路径有误 找不到页面
500:代码有误
二.表单提交方式:
1.get(默认)安全性低 地址栏可见信息 有数据长度限制
2.post 反之 以后表单常用
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 登陆界面 action:表单提交的位置 method 表单提交的方式-->
<!--表单提交方式
1.get(默认)安全性低 地址栏可见信息 有数据长度限制
2.post 反之 以后表单常用
-->
<form action="dologin.jsp" method="post">
用户名:<input type="text" name="sname"><br/>
密码:<input type="password" name="spwd"><br/>
<input type="submit" value="登陆">
<input type="reset" value="清空">
</form>
</body>
</html>
业务逻辑页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//纯业务逻辑,java代码
//设置编码方式
request.setCharacterEncoding("utf-8");//先转码,再取值
//接收表单提交过来的值(用户名 密码) 根据name值取value值
//request可以接收2种方式值 1.表单值 2. 地址栏传参数?sname=11&spwd=11
String name= request.getParameter("sname");//.getParameter("sname")中的值必须与login.jsp中name值保持一致
String pwd=request.getParameter("spwd");
out.print(name+" "+pwd);
%>