servlet
总结
1.< a >< form>发送请求
2.jsp或servlet接受请求
3.增删改查
4.请求转发回应
5.所有访问入口为servlet
注意:servlet中可以使用return来组织继续向下使用
创建使用
通常使用方法,javaee3.0以上版本
@WebServlet("/testservlet")//访问地址,一个项目地址唯一,否则报异常
public class testservlet extends HttpServlet {//继承
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//如果为GET请求
response.getWriter().append("Served at: ").append(request.getContextPath());//回应输出
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//如果是POST请求
doGet(request, response);
}
}
@WebServlet("/testservlet")
public class testservlet extends GenericServlet {//处理核心
@Override
有两种service,带http的基本不需处理细节
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {//请求已进入先执行
super.service(arg0, arg1);
}
}
通过web.xml设置指定访问地址,优点:发布了也可以设置
aaaaaa
servlet.ada
还有welcome标签,指定默认页面
基本使用
@WebServlet("/testservlet")//访问地址
public class testservlet extends HttpServlet {//继承
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//如果为GET请求
request.setCharacterEncoding(“utf-8”);
response.setContentType(“text/html;charset=utf-8”);
List list =DBHelper.executeQuery(“select*from Type”, Type.class);
request.setAttribute(“list”, list);//将查询结果加入request中,键值对
request.getRequestDispatcher(“a.jsp”).include(request, response);//请求转发,include方法是在输出的结果中附加
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//如果是POST请求
doGet(request, response);
}
}
获取servlet传过来的对象
MVC
回应方式,熟练
直接输出html
response.getWriter().append("html内容 ")
后端url重定向
response.sendRedirect(“index.jsp”);
直接删除json串,ajax可通过Jackson自动生成
response.getWriter().append(json字符串)
请求转发
forward方法:代替之前全部输出
include方法:在之前输出的结果中附加
request.getRequestDispatcher(“index.jsp”).include(request,response)
使用前端模板引擎,freemark
JSTL+EL 全面替代jsp脚本
jstl java通用标签库(重要性排名)
1.core库(核心库)
prefix别名
先设置标签库<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
循环遍历servlet传进来的list
varStatus:指定变量名称,作为行状态对象使用,index,count属性
var:指定变量名称,作为循环的个体
items:循环的内容,用el表达式
<c:forEach items="${list}" var=“row” varStates=“v”>
这其实调用的get方法,所以封装要标准,变量名字大写字母之前一定要有两位小写字母
判断处理,没有else,内容时EL的boonlean表达式
<c:if test="${v.index%2==0&&v.count>10}"></c:if>
设置变量值
<c:set target="$(row)" property=“name” value=“123”></c:set>
url重定向
<c:redirect url=“a.jsp”></c:redirect>
2.functions函数库
<%@taglib prefix=“fun” uri=“http://java.sun.com/jsp/jstl/functions” %>
设置标签库
3.sql数据处理库
<%@taglib prefix=“sql” uri=“http://java.sun.com/jsp/jstl/sql” %>
4.xml库
5.fmt地域库,地域处理,日期,小数点
EL 数据表达式,数据读取器,获取服务器上的各种值
用法:$(),如果不好用,加上isELIgnored=“false”;
$(值),EL只要语法不错就不报错,没有空指针错误,大小写敏感
内部访问对象:
requestScope
访问服务器值request的,request.setAttribute(“list”, list);,可以省略
l
i
s
t
是
{list} 是
list是{requestScope.list}的简写
sessionScope 服务器值session
applicationScope 服务器值application
pageScope 当前页变量,可省略
param 参数值获取
paramValues 同名参数获取,${paramValues.count[1]} ${paramValues.count}返回值开头Ljava,代表对象数组
header http协议头数据
headerValues
cookie 客户端临时存储数据
加入.value是取值;;否则获取cookie对象 ${cookie.username.value}
pageContext 当前页上下文
initParam 当前设置web.xml变量
< context-param >
< param-name>name</ param-name>
< param-value>wjx< /param-value>
< /context-param>