JSP
客户端发出Request请求,JSP容器将JSP转译为Servlet的源码,再编译加载到内存执行,结果Response到客户端。
Request->JSP->Servlet(java)->class(.class)->Servlet instance->Response
页头第一行
<%@page import="com.xxx.xxx.类"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
Html中插入JSP小脚本
<%
//Java代码
%>
注释:
<!--html注释 -->
<%--JSP注释-->
<%
//Java注释
/*Java多行注释*/
%>
JSP内置对象(request,response,session,out,application,pageContext,page,config,exception):
在<% %>中使用的,内置对象(先声名了,直接使用)
<%
out.println("xxx");
Map name=request.getParameterMap("xxx");
response.sendRedirect("/xxx.jsp");
String st=exception.getMessage();
%>
Servlet
WebServer编译JSP为Servlet,执行Servlet,将JSP的HTML标记交给客户端浏览器执行,将JSP内容(指令,标记,声名,代码段,表达式)服务器处理,再将结果给到客户端浏览器。
Eclipse (简单登陆)
1.New->Dynamic Web Project
2.New->login.jsp,pass.jsp,fail.jsp
3.New->Servlet->Java package:com.test /Class name:Login/superclass:javax.servlet.http.HttpServlet (default)
->URL Mappings:/Login (default) ->Which method ..create?
Constructors form superclass(default)
Inherited abstract methods(default)
doPost(default)
doGet(default) //Servlet中处理用户的请求为doGet()方法或doPost()方法,当用户发送请求(post/get)由Web容器自动分配时,系统将自动调用对应的方法,所以Servlet中,doPost方法调用了doGet方法,达到一致的处理。
login.jsp
<form action="Login" method="post">
<input type="text" name="uname"/>
<br/>
<input type="password" name="upassword"/>
<br/>
<input type="submit" value="submit">
</form>
Login.java (com.test.Login)
protected void doGet(HttpServletRequest request, HttpServletResponse response){ //方法自动生成
String name=request.getParameter("uname");
String password=request.getParameter("upassword");
RequestDispatcher rd =null;
if ("test".equals(name)&&("123".equals(password))){
rd=request.getRequestDispatcher("pass.jsp");
}else{
rd=request.getRequestDispatcher("fail.jsp");
}
rd.forward(request, response);
}
web.xml
<servlet> //自动生成
<description></description>
<display-name>Login</display-name>
<servlet-name>Login</servlet-name>
<servlet-class>com.test.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>