1.什么是JSP
JSP是JavaWeb服务器端的动态资源。它与html页面的作用是相同的,显示数据和获取数据。
JSP=html+Java脚本(代码片段)+JSP动态标签
jsp指令也是一种特殊的标签
任何文本、HTML标签、JSP元素必须写在脚本程序的外面。
Java脚本:
1.<%…%>
java代码片段 方法里能写啥他就能写啥
<%
int a=0;
out.print(a)
%>
2.<%=…%>
java表达式
<%=a++%>
3.<%!…%>
声明,用来创建类的成员变量和成员方法(基本不用,但容易被考到)
<%
int a=3; 局部变量
out.print("a:"+a);
%>
<br>
<%=++a %>
<%!
int a=199; //%!这个就相当于类,在里面只能写变量和方法,用this来就是打印的它,成员变量
%>
<%
out.print(this.a++);
%>
以下就是冗余的嵌套java代码的jsp,结果是输出一个表格,实际上非常不利于阅读理解,所以只要会写一遍就可以了,大概了解。
<table border=1 bgcolor=red color=green>
<%
for(int i=1;i<=3;i++){
%>
<tr>
<%
for(int j=1;j<=10;j++){
%>
<th><%=i %>
<%
out.print("*");
%>
<%=j %>
</th>
<th><%=i*j %></th>
<%}
%> </tr> <%} %> </table>
2.jsp发请求到servlet,servlet再发送结果到jsp页面
下面来做个例子
获取表单参数
把字符串转换成int类型
进行加运算得到结果
保存结果到request域中
转发到result.jsp中
请求页面 calc.jsp
<form action="/jsp/Ja" method="post">
整数a:<input type="text" name="a"><br>
整数b:<input type="text" name="b"><br>
<br>
<input type="submit" value="提交">
</form>
处理请求的servlet
@WebServlet("/Ja")
public class Ja extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer inta=Integer.valueOf(request.getParameter("a"));
Integer intb=Integer.valueOf(request.getParameter("b"));
response.setContentType("text/html;cha rset=utf-8");
request.setAttribute("value",(inta+intb));
request.getRequestDispatcher("jsplearn/result.jsp").forward(request, response);
}
}
结果页面 result.jsp
这个值等于:<%=request.getAttribute(“value”) %>
ps:请求转发只要给出路径,不需要项目名,因为本来就是在项目里的啊
3 JSP的原理
jsp本身就是一种特殊的servlet
当jsp页面第一次被访问时,服务器会把jsp编译成java文件(这个java其实是一个servlet类)
然后创建该类对象发