1 maven
1.6 在IDEA中使用maven
- 创建新项目
-
等待下载
-
观察maven仓库是否下载东西
-
idea中maven设置,idea项目创建成功后,看一眼maven的配置,他可能自动改成默认的
-
maven在idea中创建成功了
1.7 创建一个普通的maven项目
1.8 标记文件夹功能
1.9 在idea中配置tomcat
2 Module
-
在项目里面右键new-Module
-
在父层pom.xml中会发现新建了一个module
-
在module里面会发现parent标签(里面有GAV)a是父类的项目名
-
main里面自己建立src和source,并且标记这两个文件夹
-
在左右面的Maven中,点击加号,把module的pom.xml添加到里面
3 Servlet
3.0 Servlet说明
-
Servlet就是sun公司开发动态web的一门技术
-
在webapp//WEB-INF//web.xm里面应该注册相应的servlet
<servlet>//servlet的名字和绑定对应的servlet <servlet-name>hello</servlet-name> <servlet-class>com.jiang.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping>//映射该servlet到对应的url上面 <servlet-name>hello</servlet-name> <url-pattern>/helloServlet</url-pattern> </servlet-mapping>
3.1 注意建立package和配置tomcat
把servlet放到对应的package里面
在配置tomcat的时候,不要忘记每一次只选中一个web应用,这样会编译的更快,同时url不容易出错
3.2 重载doGet和doPost方法
//由于get或者post只是请求实现的不同的方式,可以互相调用
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("进入doGet方法");
//ServletOutputStream outputStream = resp.getOutputStream();
PrintWriter writer = resp.getWriter();
writer.print("Hello,Servlet");j
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
3.3 ServletContext
一个web应用对应一个ServletContext,作用相当于一个全局的容器,可以保存所有的变量,可以做到在不同的servlet中进行传递参数
ServletContext context=this.getServletContext();
String username="Jack";
context.setAttribute("username",username);//将一个数据保存在ServletContext中,名字为username,值为username中对应的值,相当于key value
ServletContext context=this.getServletContext();
String username=(String)context.getAttribute("username");//使用ServletContext里面的内容
resp.getWriter().print("name"+username);
-
编码设置成中文
resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8");//设置成中文
1、获取初始化参数
resp.getWriter().print(this.getServletContext().getInitParameter("url"));
在web.xml里面
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybook</param-value>
</context-param>
2、请求转发
- tips:转发和重定向的区别,假设有abc,a经过b转发给c,c再把内容给b再给a,a并没有直接通过c获得内容,而重定向是a向b请求,b告诉a应该向c请求,于是a重定向到c(粗俗理解)
public class forwardServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext servletContext = this.getServletContext();
RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher("/helloServlet");//请求转发到helloServlet
requestDispatcher.forward(req,resp);//进行转发
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
在web.xml里面注册Servlet
<servlet>
<servlet-name>forward</servlet-name>
<servlet-class>com.jiang.servlet.forwardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>forward</servlet-name>
<url-pattern>/forward</url-pattern>
</servlet-mapping>