jsp

下载apache-maven-版本号,修改conf/settings.xml的本地仓库的路径( <localRepository>f:/mylib1</localRepository>)


1. 基本环境和文件的建立方法

基于http的分布式访问

(1)配置tomcat的JAVA_HOME的环境变量,路径是jdk的文件路径

(2)外部开启和关闭:tomcat--bin---stratup.bat----shutdown.bat

(3)建立的所有网页存放在tomcat---webapps里--新建文件夹---新建html文件

(4)新建项目:

file---new--dynamic web project---next---project name---new  runtime---apache版本--next---服务器name----tomcat安装路径---finish-next--next---勾选webxml---

javaSources----写java文件       webContent----写html/jsp)

(5)服务器的建立

server--new--server---apache版本   server runtime environment(选择你要用的服务器名称)--next---finish

 

双击打开服务器--选中Use Tomcat installation ---Deploy path:webapps---保存关闭

 

6)新建html文件及文件的运行:

  webContent---new---other---web--html文件---(此时文件在workspace里)

 

选中一个服务器右击---add  and  remove--选中你的项目名---add--finish(此时文件在webapps里)

  将该文件在网页中打开:servers 服务器右击---start ----在浏览器里输入地址进行访问

 

2. 注释的方法

<% %>外部的注释:<!- -   - ->     <%- -   - -%>

<% %>内部的注释://(单行注释)     /* */(多行注释)

“alt+/”-----提示性内容

3. jsp的运行环境

new---jsp文件--修改charset为UTF-8

jsp---java代码和html代码并存,html文件里只能是html代码

 

html,css,js,jquery执行环境  本地浏览器----服务器直接将静态页面给用户,在用户的本地浏览器解析

 

jsp的运行环境是tomcate(服务器)---tomcate在服务器端将jsp解析成一个类往客户端输入静态页面

 

--------jsp在服务器端运行,html在客户端运行)

4. jsp页面的构成

静态内容

HTML静态文本

指令

<%@  %>   以<%@开始,以%>结束

表达式

<%= java表达式 %>

Scriptlet

<% java代码 %>

声明

<%!函数或方法>  类里的方法

动作

以<jsp:>开始,以</jsp>结束

注释

<!--客户端注释-->

<%--服务器端注释--%>

 

(1) jsp指令page   include  taglib

 page:language:要在页面中嵌入的语言

contentType:页面的格式和编码的方式

pageEncoding:支持中文

immport:引入页面

errorPage=“”:指向处理错误的页面----该页面的page中isErrorPage(true):标明自己是处理错误的页面, 该页面除了写一些联系....,还可以打印出<%=exception%>

include:<%@include file=”hello.jsp” %>---引入文件

 

2)_jspServers方法  

scripelet的作用域在_jspServers方法里

表达式的作用域在_jspServers方法里---在页面中输出

out作用域在_jspServers方法里---在页面中输出

System.out.println()----在控制台输出

不能在方法里定义方法,可以在类中定义方法

 

jar包的加入---web_INF文件夹下

属性--build path---jar包

项目名右击---属性---deployment assembly---add---bulid path--jar包

 

3)jsp标准动作---都可以翻译为java代码

javaBean:属性都是私有的,get和set()都是公有的

●useBean:实例化的对象必须有无参的构造函数

语法:

<jsp:useBean id=””  class=””  scope=””/>

<jsp:useBean id=””  class=””  scope=””></jsp:useBean>

id-----代表javaBean的实例名

class:指定javaBean对象路径的完整名称

scope:javaBean的作用域--带值方式(page,request,session,application)

例如:

<jsp:useBeanid=”bean1”class=”com.lore.entity.DUser”scope=”page”/>

相当于:<%

DUser bean1=new DUser();

pageContext.setAttribute(“user”,bean1);

%>

 

●<jsp:setProperty/>:useBean里的属性设值,属性的类型可以自动转换

  name---javaBean类的引用(useBean的id值)   property---属性名

value---属性值        param----javaBean的参数值

 

//value:设置的是固定值   param:接收用户传过来的参数(表单的name值)

<jsp:setProperty  name=”bean”  property=”id”  value=”12”/>

<jsp:setPropertyname=”bean1”property=”uname”param=”uname”/>

//当表单中的name值和属性名相同时,可以直接设为“*”

<jsp:setProperty   name=”bean1”  property=”*” />

 

●<jsp:getProperty../>

<jsp:getProperty  name=”bean”  property=”id”  />//获取id的值

 

服务器的内部转向

属性用“*”----确保属性名和name参数名是一样的

●<jsp:forward />服务器内部转向

//request.getRequestDispatcher("addDuser.jsp?abc=12").forward(request, response);

 

<jsp:forward page=”跳转的页面”>

 <jsp:param name="abc" value="12" />-----传参

</jsp:forward>

●<jsp:include... />--可以传参数

//<%@include file=”引入的jsp文件”%>---不能传参,只是静态的引入

 

<jsp:include page=”引入的jsp文件”>

 <jsp:param name="abc" value="12" />

</jsp:include>

 

request.getRequestDispatcher("addDuser.jsp?abc=12").include(request, response);----动态传参引入页面

5. 隐式对象:用在java代码里

隐式对象

 

输入/输出对象

out

request

response

 

作用域通信对象

pageContext

session

application

Servlet对象

page

config

错误对象

exception

 

 1)out:out.print();//在页面输出

2)request:地址栏中“?”后边的参数

请求方式:get/post

get方式---明码提交(?后边字符串显示在地址后边)(可以直接在地址后+?字符串或者借助于表单提交)---一般只能接收英文,不建议用中文

例如:http://127.0.0.1:8080/myweb/index.jsp?uname=zhangsan&pw=111

 

post方式---暗码提交(?字符串不再浏览器地址栏中显示)(只能借助于表单提交---提交之后用get也获取不到?后的字符串)----可以接收中文

request.setCharacterEncoding("UTF-8"); //设置请求编码的格式,请求方式是post

request方法(getParameter()获取的是String类型)

 //当参数名称相同时,getParameterValues(String name)获取参数值

  //当参数名称不同时,getParameter (String name)获取参数值   

  String s=request.getParameter();

  String[] favs=request.getParameterValues("fav");

 

  //Enumeration getParameterNames()//获取所有的参数名称

 //枚举也是个集合

  Enumeration<String> str=request.getParameterNames();

  while(str.hasMoreElements()){  //迭代器遍历

  String s=str.nextElement();

  out.print(s);

  }

  

  request.getRemoteAddr();//获取客户端的ip地址

  request.getMethod();//获取客户端的请求方式

  request.getRequestURL().toString();//获取?前边的

  request.getRequestURI();//获取?前边的文件夹及文件名

  request.getQueryString();//获取客户端字符串(?后边的字符串)

  request.getContextPath();//获取根路径

 

  button按钮可以用js提交表单,用于验证数据的合法性

  submit---可以直接提交表单,但不能验证数据的合法性

 

 

  jsp的主要功能:接收用户提交的参数,跟数据库进行比对,成功跳转首页面,失败跳转登录界面

跳转两种方式:重定向/服务器内部转向

response.sendRedirect();//重定向,不同请求下,浏览器的地址会变化

 

//服务器内部转向,同一请求下,浏览器地址不会变

request.getRequestDispatcher(“跳转页面”).forward(request,response);

request.setAttribute(“参数名称”,值);//页面之间带值,必须在同一请求下

request.getAttribute(“参数名称”);

//页面之间带值方式

pageContext--request---session--application

 //使用范围(能用小的就不用大的,用大的服务器会崩溃):

同一个页面---同一请求下(地址不换)--同一浏览器下---所有页面都可以用

例如:

pageContext.setAttribute(String,object);

pageContext.getAttribute(String, object);

6. EL表达式

<%@page  isELIgnored="false"%>---默认为支持EL表达式

${EL表达式}---操作数不能被声明

操作数只能应用在 请求参数 作用域

//请求参数下:接收的都是字符串

${param[‘a’]+param[‘b’]}

 

//作用域下(pageContext,request,session ,application)--接收的可以是普通数 /对象 /集合 /map映射

 

<%

pageContext.setAttribute(“m”,100)

pageContext.setAttribute(“n”,100)

 

DUser user=new DUser();

 user.setUname("zhangsan");     

 user.setSex(“男”);

request.setAttribute(“a”,user);

 

 List<DUsers> list = new ArrayList<DUsers>();  

  list.add(user);

 request.setAttribute("b", list);

 

  Map<String,DUsers> map = new HashMap<String,DUsers>();       

        map.put("key1", user);

        map.put("key2", user2);

request.setAttribute("c", map);

%>

普通数---${ pageScope.m + pageScope.n }

 

对象--${ requestScope.a.uname }

${ requestScope.a.sex }

 

集合--- ${requestScope.b[0].sex}

Map---   ${requestScope.c.key1.mc}

7.标签指令(taglib

---标签和EL表达式结合

为了避免出现大量的java代码,更符合前端的书写方式,要使用taglib

 

JSP的标准标签库----JSTL(JavaServer Page Standard Tag Library)

在使用taglib指令前需要引入两个jar包---standard.jar和jstl.jar

  <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

(1) 

核心标签库

通用标签(set/out/remove)

条件标签(if/choose)

迭代标签(forEach/)

 

2)

//设值和作用域

<c:set var=”变量名”  value=”100” scope=””></c:set>

<c:set var=””  value=”${ param[‘age’]}” scope=””></c:set>

<c:setvar=”c”value=”${requestScope.a+requestScope.b}”scope=””></c:set>

 

//输出

<c:out  value=”${requestScope.a}”></c:out>

${requestScope.c}

 

//移除---移除之后什么也不显示

<c:remove var=”a”  scope=”session”></c:remove>

(3)条件标签(if/choose)

<c:if test=”${requestScope.a>40}”><div>此数大于40</div></c:if>

 

//多重if...else

<c:choose >

<c:when test=”${requestScope.a>40}”>...</c:when>

<c:when test=”${requestScope.a>40}”>...</c:when>

<c:otherwise ”>...</c:otherwise>

</c:choose >

(4)迭代标签(forEach)

 //相当于for循环(begin<=t<=end)

<c:forEach var=”t”  begin=”1”  end=”100” step=”步长”>

${t}

</c:forEach>

 

//对象的遍历

 <c:forEach var=”m”  items=”requestScope.list” varStatus=”vs”>

${vs.index}---序号,从0开始

${m.name}

</c:forEach>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值