(一)创建项目
- 可以使用MyEclipse和IDEA开发JavaWeb项目,MyEclipse中配置相对简单,IDEA需要手动基础配置
- IDEA下JavaWeb开发
- 创建JavaEE项目
- 在WEB-INF目录下创建lib和classes文件夹
- 配置Project Structure中的Path(编译生成的文件放在classes文件夹下)和Dependencies(依赖的包从lib中获取)
- 配置Libraries(将tomcat的servlet.api添加到项目)
- Run Configuration(创建tomcat local服务器,并且将项目deployment /项目名称)
- Run Configuration选中tomcat/webapps/ROOT,将首页部署到tomcat上
参考:[使用IntelliJ IDEA开发java web](https://www.cnblogs.com/carsonzhu/p/5468223.html)
(二)基础框架
(1)Servlet
- Servlet是用Java编写的服务器端程序
(2)Tomcat
- Tomcat是一种Servlet容器,支持Servlet以及JSP
- 当前使用版本:9.0.11
(3)JSP
- JSP(JavaServer Pages)是将Java代码插入到HTML页面中,支持动态页面的开发的技术
(4)HTTP协议
- HTTP请求报文由三部分组成:
- 请求行:指明请求方法、URL路径、HTTP版本以及协议(如果是GET方法还有请求参数 ?…&…)
- 请求头:包含若干个属性,比如User-Agent
- 请求体:可以传递请求参数
- POST方法以及GET方法
- GET方法没有请求体
- POST方法参数不会在URL中传输,而是是请求体中传输,所以安全性更好
- GET方法不会给服务器做出任何改变,POST方法可以修改服务器上的内容
- HTTP状态码:表示服务器相应状态的code
1XX | 表示请求已经被接受,需要进一步处理 |
---|---|
2XX | 表示成功处理请求 |
3XX | 表示要完成请求,需要进一步操作(通常这些状态码用来重定向) |
4XX | 表示客户端出现了问题,妨碍了服务器的处理(典型的404 Not Found) |
5XX | 表示服务器在尝试处理请求时内部发生错误(一般是服务器自身的问题) |
(5)WEB-INF
- WEB-INF指安全文件夹:只能在服务器端访问,对于客户端隐藏
(三)Servlet类
- 客户端提交表单,可以由Servlet类来处理HtttpServletRequest请求
- 继承自HttpServlet,需要复写的方法有doGet方法以及doPost方法
(1)返回html文本
- 首先设置相应的编码方式以及以html的文本返回
response.setCharacterEncoding("UTF-8"); //要求客户端以UTF-8的方式来解析response回应
response.setHeader("content-type","text/html;charset=UTF-8");
- 然后可以获取java.io.printwriter对象
PrintWriter out = response.getWriter();
- 使用out.write()方法输出字符类型(字符、字符串、字符数组)
(2)获取参数
//获取request参数:
String s = request.getParameter(String); //比如可以从提交的表单中获取name为String对应的值
String[] strs = request.getParameterValues(String); //比如可以从提交的表单中获取name为String对应的值(一般用于String有多个相同的值比如在CheckBox返回的值)
(3)中文乱码
- 产生中文乱码的原因是客户端和服务器按照不同的编码方式解析文本造成的
- 比如客户端以POST的方式提交表单中的中文,服务器端可能显示的是乱码
request.setCharacterEncoding("UTF-8"); //解决方式:在服务器端设置以UTF-8的编码方式接受请求
- 比如客户端以POST的方式提交表单中的中文,服务器端可能显示的是乱码
(4)ServletContext
- Servlet上下文
- 一个Web应用只有一个ServletContext对象,保存全局信息
- void setAttribute(String name, Object value)
- Object getAttribute(String name)
(四)web.xml
- Web.xml的作用是初始化项目的配置信息
- 在编写好Servlet之后可以在web.xml中配置访问这个Servlet的url路径
- 主要有servlet以及servlet-mapping两个标签
- servlet标签中配置Servlet类的别名
- servlet-mapping标签中由Servlet类的别名,配置对应的URL访问相对地址
<servlet>
<servlet-name>ResponseDemo1</servlet-name>
<servlet-class>com.mio4.web.ResponseDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ResponseDemo1</servlet-name>
<url-pattern>/servlet/ResponseDemo1</url-pattern>
</servlet-mapping>