打开eclipse,右键点击new–>java project,会出现如下页面。填写一个Project name,比如我在这里填写的是java_demo。然后按finish一个项目就创建好了。
修改项目的编码为UTF-8,具体步骤是右键项目名,选择最下面的Properties选项,会弹出如下页面,点击左侧第一个Resource选项,会看到Text file coding,选择第二个other,选择UTF-8编码方式。这里说下为什么要选择UTF-8编码方式,因为我们以后开发中很多情况下会用到国外的文档和包,很多都是用UTF-8编写的,这样引用起来会编码一致。点击ok就设置好了。
在项目里新建一个webapp1文件夹,右键项目名,选择new–>folder,如图所示, Folder name为webapp1,点击finish完成。
同样地在webapp1目录下建一个WEB-INF文件夹,之后在WEB-INF文件夹里建一个web.xml文件。建好之后应该是这样的结构:
这里web.xml配置文件暂且为空,之后我们再写入内容。
4.项目下新建一个lib文件夹,放置整个项目所用的jar包,包含了servlet所用的类,使编写的servlet代码可以编译。这些jar包可以从网上下载。
5.引用jar包,在项目properties左侧选项里的java bulid path里的libraries里Add JARS,把刚才lib里的包引,要按一下Apply再点OK。
6.接着刚才的步骤,在项目properties的java bullid path的source下设置classes目录,使编译形成的.class文件放到 java_demo/webapp1/WEB-INF/classes目录下。
7.写一个servlet。在项目的src目录下新建一个包com.rzy.web.servlet,这个包名的意思是:com代表公司,rzy是公司名,web.servlet代表是web应用的servlet。在包里放一个DemoServlet类和一个ResultServlet类。注意类名的命名规范,第一个字母要大写。建好之后的目录结构如下。
接下来我们先在DemoServlet类里写入处理方法。
所有Servlet类都要继承HttpServlet类,一般只要改写里面的doGet(),doPost()方法。
package com.rzy.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DemoServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//这里是处理方法,表示当访问URI为webapp1/demo/demo时,转到demo.jsp文件显示
req.getRequestDispatcher("/demo/demo.jsp").forward(req,resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//这里在doPost方法里调用doGet方法,目的是无论表单以get方式传递还是post方式传递,处理方法都一致。
doGet(req, resp);
}
}
接来下我们写ResultServlet类。方法跟DemoServlet大体一致,只是处理方法有所改变。
package com.rzy.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResultServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//通过name属性获取请求的参数
String name = req.getParameter("name");
String pwd = req.getParameter("pwd");
//通过setAttribute才能将获取的参数传递出去,转到jsp处理
req.setAttribute("name",name);
req.setAttribute("pwd", pwd);
//这里是处理方法,表示当访问URI为webapp1/demo/result时,转到result.jsp文件显示
req.getRequestDispatcher("/demo/result.jsp").forward(req,resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
8.接下来我们来在之前创建好的web.xml文件中写入配置内容。右键文件–>open with–>Text editor,写入如下内容,写好要记得Ctrl +S保存。
<web-app>
<servlet>
<servlet-name>demoServletservlet-name>
<servlet-class>com.rzy.web.servlet.DemoServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>demoServletservlet-name>
<url-pattern>/demo/demourl-pattern>
servlet-mapping>
<servlet>
<servlet-name>resultServletservlet-name>
<servlet-class>com.rzy.web.servlet.ResultServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>resultServletservlet-name>
<url-pattern>/demo/resulturl-pattern>
servlet-mapping>
web-app>
9.接下来我们在webapp1下创建一个demo文件夹,里面新建一个demo.jsp文件和一个result.jsp文件,结构如图:
这个demo.jsp文件里我们可以写一个模拟登陆的页面,代码如下:
<%@page pageEncoding="UTF-8" %>
<form action="result">
用户名:<input name="name">
密码:<input name="pwd" type="password">
<button type="submit">登录button>
form>
result.jsp页面用来显示输入的用户名和密码,代码如下:
<%@page pageEncoding="UTF-8"%>
用户名:${name};
密码:${pwd};
10.最后就是将项目部署到w eblogic并显示了。
首先打开weblogic的启动文件。
之后就在浏览器登录weblogic控制台。登录之后点击左侧的“部署”
点击安装
输入项目所在路径并且点击下面的单选框选中web应用
之后就点击下一步–>下一步–>完成,就完成部署了。
检查是否部署成功可以再次点击部署,如果看到ok则部署成功。
以下是一些注意点:
1.要让eclipse在运行时知道编译的文件所在位置,将编译文件放在WEB-INF\classes下就能识别到
2.eclipse编译所用第三方jar包放在libraries里
3.要让weblogic知道编译文件和jar包放在哪里。只要放在\classes目录下,weblogic就能自动识别到编译文件,\classes是weblogic默认的存放classpath的地址
4.Servlet编译所用jar包只要给eclipse识别使用就可以了,weblogic自带了这些jar包,不用让它识别,只要放在webapp目录下的lib里就可以。而其他的需要让weblogic识别的jar包,就需要放在WEB-INF下的lib文件夹里。
5.weblogic控制台要先启动才能使用。
6.项目做好后要部署后才能使用。
7.WEB-INF目录下的文件无法直接通过URL来访问,但是可以通过forward来访问。
8.URL访问过程:先去web.xml里去跟url-pattern匹配,如果匹配成功,直接转到相应servlet处理,如果没有匹配成功,则去文件系统匹配文件。