Java学习
嗯,Java菜鸟学习MyEclipse:
1)新建web工程:
File---new---Web Project
在已建好的web工程里添加web工程: 直接把文件粘贴过来。
2)配服务器:
Window---Preferences---MyEclipse---Servers---Tomcat---Tomcat 6.x(本机为Tomcat 6.x版本)---Tomcat Server选Enable
Tomcat Home directory:选择Tomcat路径,本机为D:\apache-tomcat-6.0.20
下面两项为自动生成项。
选择OK。
配JDK:
在Tomcat 6.x下的JDK里点击Add
找到jdk路径,本机为D:\Java\jdk1.5.0_12
3)选服务
点击图标 ,Project里选择web工程,点击ADD,Servers里选Tomcat 6.x---finish
--------------------------------------------------------------
1) 导入structs
所选项目(右键)----MyEclipse---Add Structs Capabilities
2) 运行服务,点击 ,下拉按钮下的Tomcat 6.x ----Start
3)配置structs-config.xml
在<action-mappings>和</action-mappings>之间填写:
<action path="/login" type="com.cn.struts.action.LoginAction">
<forward name="main" path="/index.jsp" />
<forward name="login" path="/MyJsp.jsp" />
</action>
其中:
com.cn.struts.action.LoginAction 表示在src里的com.cn.struts.action包下的LoginAction.Java类
<forward name="main" path="/index.jsp" />表示跳转页面
而path="/login"则表示form里的
4) 配置web.xml
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
更改里面内容,此句话是设置首页面的。
5) 新建jsp页面:
项目右键---Add---JSP
建完后把
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
改为
<%@ page language="java" import="java.util.*,com.*" pageEncoding="GBK"%>
其中,com.*为src下的相关的包
6)
<form action = "<%=request.getContextPath()%>/login.do">
<table>
<tr>
<td>user</td><td><input type="text" name="user"/></td>
<td>pass</td><td><input type="password" name="pass"/></td>
<%if(request.getAttribute("msg")!=null){ %>
<%=request.getAttribute("msg") %>
<%} %>
<td><input type="submit" name="提交"/></td>
</tr>
</table>
</form>
解释:
问:action = "<%=request.getContextPath()%>/login.do"是什么意思?
答:<%=request.getContextPath()%>是工程路径
login.do与structs-config.xml里对应。
问:request.getAttribute是什么意思?
答:获取变量。
7)
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
String user = (String)request.getParameter("user");
String pass = (String)request.getParameter("pass");
if(user.equals("123")&&pass.equals("123")){
return mapping.findForward("main");
}else{
request.setAttribute("msg", "用户名或密码错误");
return mapping.findForward("login");
}
}
问:request.getParameter是什么意思?
答:从请求里获取变量。
8)HTTP Status 500 - No action instance for path /login could be created
错误解决办法:
答:structs-config.xml里的<action path="/login" type="**">Type里的内容错误