1、打开idea,创建普通java工程:文件file—>new–>project–>两次next—>第二个文本框后面三点中选择项目存放地址,在后面添加项目名
2、将java工程转换成java web工程:在左上角项目名上右击,选择第二项,把web application勾上,默认4.0版本
3、添加servlet模板:file–>ps—>modules–>右边选择第三个dependencies–>点击±->lib–>java–>tomcat服务器里面lib文件夹里面的servlet-api.jar,连点三次OK
4、创建servlet类:左上角src上右击,选择new–》选择servlet—》取类名—》可取包名–》暂时把最下面的勾勾去掉
5、在web.xml中创建一个路由映射:把浏览器中地址映射到服务器中某一个servlet
6、在servlet类中的doget方法中写上一行代码
7、配置调试运行参数,可以自动完成如下工作
编译–》到tomcat服务器中webapps文件夹下创建网站文件夹—》创建web.xml—>复制目标代码到网站里面WEB-INF下面的classes文件夹里面—》启动服务器—》启动浏览器
浏览器地址栏中输入的地址,传送服务器,服务器如何根据地址来寻找对应的代码程序(servlet)
一个地址对应一个代码程序
通过地址栏来获取某个学生的成绩:/student/001,/student/002
我们把具有某种特征的访问地址,归类用同一个代码程序来处理
注意:如果有多条路由匹配地址,则匹配程度越高的优先
当浏览器输入的地址在路由表中没有找到匹配的路由条目,则用默认路由来匹配
指的是地址栏中指输入根地址,没有子地址,这是匹配/*这条路由
这里是将浏览器看出cmd窗口输出,不是网页文件
// 第一步:通过response参数获取PrintWriter对象,把输出内容写入到这个对象中就会自动输出到浏览器 PrintWriter out=response.getWriter(); // 第二步:把输出内容用write方法写入out out.write("hello1");
有些servlet在处理请求时,需要读取一些初始化参数,可以在web.xml中保存这些参数,servletConfig可以读取保存的数据
保存在何处:web.xml文件
数据属于这个servlet独有,其他servlet不能访问读取
代码中没有提供手段来写这些参数
<servlet> <servlet-name>Servlet1</servlet-name> <servlet-class>ldzy.soft2.Servlet1</servlet-class> <init-param> <param-name>schoolName</param-name> <param-value>ldzy</param-value> </init-param> <init-param> <param-name>AAA</param-name> <param-value>aaa</param-value> </init-param> </servlet>
// 第一步:通过this的方法来获取ServletConfig对象 ServletConfig config=this.getServletConfig(); // 第二步:ServletConfig对象的方法来读取对应键的值 String schoolName=config.getInitParameter("schoolName");
所有servlet在处理请求时,需要读取一些公共参数,这些参数可以保存到web.xml中,servletContext可以读取这些参数,代码中不能写这些参数
注意:参数是所有servlet共享,每一个servlet都可以读取
<context-param> <param-name>companyName</param-name> <param-value>itcast</param-value> </context-param> <context-param> <param-name>address</param-name> <param-value>beijing</param-value> </context-param>
// 第一步:通过this的方法来获取servletContext对象 ServletContext context=this.getServletContext(); // 第二步:通过ServletContext对象的方法来读取指定的键的值 String companyName=context.getInitParameter("companyName"); String address=context.getInitParameter("address"); // 第一步:通过response参数获取PrintWriter对象,把输出内容写入到这个对象中就会自动输出到浏览器 PrintWriter out=response.getWriter(); // 第二步:把输出内容用write方法写入out out.write(companyName+":"+address);
就存放在servletContext对象中,并没有保存到文件中
创建时间:该网站第一次接受浏览器访问时
释放时间:tomcat服务器关闭重启,或者该网站长时间(可以设置)没有访问请求到来,就会自动释放
context.setAttribute("companyName","abc");
ServletContext context=this.getServletContext();String companyName=(String) context.getAttribute("companyName");
不同servlet交换数据