前端发送请求的方式
form表单提交方式 get post
get提交显示url显示(显示参数值,参数名)不安全
post提交显示url不显示(显示参数值,参数名),安全
action="页面地址/servlet"
a标签传递参数用?name=value,多个参数用&隔开
servlet接收参数
String name=request.getParamenter("name");
接收多个参数
. String[] getParameterValues(String name):根据参数名称获取参数值的数组 hobby=xx&hobby=game
String[] hobbies= request.getParameterValues("hobby");
for (String hobby:hobbies){
System.out.println(hobby);
}
调用service完成请求的处理
service 层
service接口 对象名=new service实现类();
对象名.方法名([参数]);实现业务处理
创建service接口
public interface ServiceUser{
抽象方法;
[public static] 返回值类型 方法名([参数...]);
public List
}
service实现类
public void ServiceImpl implements ServiceUser{
@Override
public c List
获取数据,处理数据
UserDao uo=new UserDaoImpl();
Result rs=uo.query();
if(rs!=null){
while(rs.next){
返回值类型 属性名=rs.get数据类型("列名");
String name=rs.getString("name");
int id=rs.getInt("id");
Date createDate = rs.getTimestamp("createDate");
。。。。
User u=new User();
u.setName(name);
u.setId(id);
u.setCreatedata(createDate);
}
}
}
}
dao
public interface UserDao{
public Result query();
}
public implement UserDaoImpl extends DataBase{
public Result query(){
String sql="select*from user";
Result rs=DataBasequery(sql);
return rs;
}
}
DataBase类
public void DataBasequery(String sql){
导入jar包
加载驱动
Class.forName("com.mysql.jdbc.Driver");
连接数据库
Connection conn=DrivateManage.getConnection("jdbc:mysql://location:3306/数据库名","root","root");
获取sql处理对象
Statement stmt=conn.createStatement();
执行sql
Result rs=stmt.executeQuery(sql);
return rs;
}
Serlvet
重定向
response.senRedirect("/login.jsp");
地址栏改变
请求两次
转发
request.getRequestDispatcher("login.jsp").forward(request,response);
地址栏不改变
请求一次
前台往后台传值
request.setAttribute("he","hello");
导入jstl.jar standard.jar
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
${he}
${news.id}
${news.name}