J2EEJAVA——HTMLform表单中action的‘’路径问题

J2EEJAVA——HTMLform表单中action的‘’路径问题,第1张

1.HTML中的form表单简单介绍

HTML中的form表单在JAVA企业级开发中拥有十分重要的地位,HTML表单用于收集用户输入的信息,并将收集到的用户信息发送到web服务器中。在初级阶段,form表单常常使用在设计用户登录、用户反馈和用户选择上。

下面是一个基于form表单的一个简单登录系统:



    
        
        
            一个简单登录系统
        
    
    
        
Username:
Password:

2.HTML表单中的action用法

        在HTML表单中可以在form表单后添加一个action属性,action属性的值是表单提交给的url,当HTML表单提交信息后,提交的信息就会交给action的属性值,不填action或者填为action="",那么表单就会默认提交到当前页面。

下面是一个使用到action属性的登录系统例子:

Servlet代码:

public class LoginServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		
        String username = request.getParameter("username"); 
        String password = request.getParameter("password");         
        
        System.out.println("username = " + username ); 
        System.out.println("password = " + password ); 
        
        response.setContentType("text/html"); 
        response.getWriter().println("Login Success!"); 
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		doGet(request, response);
	}
}

HTML源码:





Login


	
	
用户名:
密 码:

浏览器演示效果: 

 

当我们输入数据,然后点击登录在编译器的控制台中就会显示我们刚刚输入的数据,并且浏览器就会跳转到登录成功页面。

 3.form表单action的属性值填写中路劲问题

        首先action需要能成功执行,需要action属性的值在对应的路径下能够找到,这就需要正确理解路径的写法。我们先理解路径中‘/’的具体意义。

        一般情况,在服务器端看,/就是项目的根目录。如http://127.0.0.1:8080/Test/,Test后的/就是指的根目录。

        从客户端看,/指的是服务器的虚拟跟目录webapps,如http://127.0.0.1:8080/,8080后的/就是虚拟跟目录。

        在action路径书写中,./代表的就是本级目录,../代表的就是上一级目录。

例如在上一个例子中:





Login


	
	
用户名:
密 码:

 action="login",这里不没有加/意思也是在本级目录中去找。而找的对象则是在web.xml文件中:



  
    MyServlet
    servlet.LoginServlet
  
  
    MyServlet
    /login
  

值得注意的是,在web.xml文件中用的是/login,在form表单中应该为login。

又因为直接写login,就是在本级目录中找,所以action中login换为./login也可以。

但是不能换为/login,因为换为/login那么就会在html所在目录的根目录下去寻找,就找不到web.xml文件了。

 

直接写/login会在webapp目录下找,无法找到web.xml文件。

同理当html文件在web.xml文件下一级目录中,那么久需要改为../了。

例子:

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/795079.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-06
下一篇2022-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存