EL表达式
${表达式}
.属性
[]属性,下标,key
EL能访问作用域中的数据
${xxxScope.name}
还能访问参数数据(form,或url传递过来的)
${param.name} ${paramValues.name}
访问作用域数据时,前面的Scope范围不写,默认从
page >request>session >application
通用标签
<c:out value="EL表达式" default ="默认值"/> 需要设置默认值用,平时用EL表达式
<c:set var = "name" value = "value" scope ="作用域">
<c:remove var ="" scope="作用域"/>
<c:forEach var="1" begin="1" end="100" step="5">
${i}
</c:forEach>
JDBC步骤:
1驱动2连接3Statement4 sql语句5 结果6关闭
静态sql
Statement stmt = conn.createStatement();
stmt.executeQuery(sql)
动态sql:性能好,安全,可读性好
PreparedStatement ps = conn.prepareStatement(sql);
ps.setXXX(index,value);
ps.executeQuery();
3执行存储过程
String sql="{call proc_name(?,?)}";
CallableStatement cs = conn.prepareCall(sql);
cs.registerOutParameter(2,Type.Integer);
cs.execute();
int i = cs.getXX(2);
处理请求数据,跳转到下一个页面
servlet作用相当于一个控制器,控制数据的流转,控制页面的跳转
url写法
<form action""> 如果写成/开头,表示从服务器ip地址后的直接路径
如:localhost:8080/AddNewsServlet
如果开头没有/,表示从当前路径去访问
例如:当前路径为:http://localhost:8080/news/jsp/admin/news.jsp
则action="/AddNewsServlet"请求地址为http://localhost:8080/news/jsp/admin/AddNewsServlet
正确写法:action="<%=request.getContextPath()%>/AddnewsServlet"
servlet里:
重定向时:
1.如果写成/开头,表示从服务器ip地址后的直接路径
2.如果开头没有/,表示从当前路径去访问
3.如果当前Servletd url不在醒目根目录下,那么跳转到jsp时.就需要在url前也加上 request.getContextPath()
转方时:
1.如果开头写/,表示从项目根路径下访问
2如果开头没有/,从当前路径
3.转发是不需要加项目根路径,即不需要加request.getContextPath()
因为转发时url不会发生变化,可能导致资源相对路径错误,解决方法:让当前jsp中所有资源路径,都已项目根路径为起点
<<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">在<head>的第一句写 作用是从项目根目录查找
${表达式}
.属性
[]属性,下标,key
EL能访问作用域中的数据
${xxxScope.name}
还能访问参数数据(form,或url传递过来的)
${param.name} ${paramValues.name}
访问作用域数据时,前面的Scope范围不写,默认从
page >request>session >application
通用标签
<c:out value="EL表达式" default ="默认值"/> 需要设置默认值用,平时用EL表达式
<c:set var = "name" value = "value" scope ="作用域">
<c:remove var ="" scope="作用域"/>
<c:forEach var="1" begin="1" end="100" step="5">
${i}
</c:forEach>
JDBC步骤:
1驱动2连接3Statement4 sql语句5 结果6关闭
静态sql
Statement stmt = conn.createStatement();
stmt.executeQuery(sql)
动态sql:性能好,安全,可读性好
PreparedStatement ps = conn.prepareStatement(sql);
ps.setXXX(index,value);
ps.executeQuery();
3执行存储过程
String sql="{call proc_name(?,?)}";
CallableStatement cs = conn.prepareCall(sql);
cs.registerOutParameter(2,Type.Integer);
cs.execute();
int i = cs.getXX(2);
servlet:
A.jsp--servlet--b.jsp处理请求数据,跳转到下一个页面
servlet作用相当于一个控制器,控制数据的流转,控制页面的跳转
url写法
<form action""> 如果写成/开头,表示从服务器ip地址后的直接路径
如:localhost:8080/AddNewsServlet
如果开头没有/,表示从当前路径去访问
例如:当前路径为:http://localhost:8080/news/jsp/admin/news.jsp
则action="/AddNewsServlet"请求地址为http://localhost:8080/news/jsp/admin/AddNewsServlet
正确写法:action="<%=request.getContextPath()%>/AddnewsServlet"
servlet里:
重定向时:
1.如果写成/开头,表示从服务器ip地址后的直接路径
2.如果开头没有/,表示从当前路径去访问
3.如果当前Servletd url不在醒目根目录下,那么跳转到jsp时.就需要在url前也加上 request.getContextPath()
转方时:
1.如果开头写/,表示从项目根路径下访问
2如果开头没有/,从当前路径
3.转发是不需要加项目根路径,即不需要加request.getContextPath()
因为转发时url不会发生变化,可能导致资源相对路径错误,解决方法:让当前jsp中所有资源路径,都已项目根路径为起点
<<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">在<head>的第一句写 作用是从项目根目录查找