- Servlet的官方定义
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 - 普通java项目和web项目的导包方式
java项目:
在classLoader加载jar和class的时候,是分开加载的,一般jar导入分两种:
1.在web-inf下的lib中直接引入
2.在user library上引入
无论以上哪种引入,jar包都能加载并且运行,classLoader会智能加载(本地JRE运行)
javaweb项目:
不是通过本地的JRE运行的,而是部署到web服务器(比如tomcat,jetty),这些服务器都实现了自身的类加载器. - 转发和重定向的区别?给出一个比喻示例
1、请求次数:重定向是浏览器向服务器发送一个请求并收到响应后再次向一个新地址发出请求,转发是服务器收到请求后为了完成响应跳转到一个新的地址;重定向至少请求两次,转发请求一次;
2、地址栏不同:重定向地址栏会发生变化,转发地址栏不会发生变化;
3、是否共享数据:重定向两次请求不共享数据,转发一次请求共享数据(在request级别使用信息共享,使用重定向必然出错);
4、跳转限制:重定向可以跳转到任意URL,转发只能跳转本站点资源;
5、发生行为不同:重定向是客户端行为,转发是服务器端行为;
就和购物一样,如果有需求就留下地址,方便货物的运输与传送,如果没有需求,就不需要留下地址 - Servlet示例
package com.gxy.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gxy.entity.Client;
import com.gxy.service.ClientService;
import com.gxy.service.Impl.ClientServiceImpl;
/**
-
Servlet implementation class ServletLogin
*/
@WebServlet("/ServletLogin")
public class ServletLogin extends HttpServlet {
private static final long serialVersionUID = 1L;/**
- @see HttpServlet#HttpServlet()
*/
public ServletLogin() {
super();
// TODO Auto-generated constructor stub
}
/**
- @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String cliName = request.getParameter(“username”);
String cliPassword = request.getParameter(“password”);
System.out.println(cliName);
System.out.println(cliPassword);
ClientService clientService = new ClientServiceImpl();
List list = clientService.selectBookList(cliName, cliPassword);
System.out.println(list.size());
if(list.size()>0) {
request.setAttribute(“username”,cliName);
request.getRequestDispatcher(“success.jsp”).forward(request, response);
}else {
response.sendRedirect(“fail.jsp”);
}
}
- @see HttpServlet#HttpServlet()
}
5. Junit测试类示例
package com.gxy.Test;
import org.junit.Test;
public class TestJunit {
@Test
public void method() {
System.out.println(“什么时候开学”);
}
}