关于滚动骰子的jsp(java)编码

时间:2017-07-31 12:44:46

标签: java jsp

我试图在用户输入滚动骰子的数字后显示输出,我无法调用我在aligator标签中的计算(< %%>)。我该怎么做?

这是我的代码:

#include <stdio.h> 
 int main() 
{   char i=0;            
    for(;i>=0;i++);     
    printf("%d",i);     
    return 0; 
 }

2 个答案:

答案 0 :(得分:1)

在第一次请求时,页面加载时请求中没有dicenum参数,除非您以这种方式加载页面:http://localhost:8070/../page.jsp?decinum=20手动将请求参数添加到URL。

当用户通过<input type="submit" value="submit">提交表单时,由于您的请求类型为GET(默认值),请求参数dicenum会附加到网址,从而形成网址{{1} },其中http://localhost:8070/../page.jsp?decinum=value将替换为表单中输入的值。

因此,在第一个请求(第一页加载)上,当用户没有提交任何表单值时,没有请求参数value,因此您在此行中获得NullPointerException

dicenum

因为它解释为int num = Integer.parseInt(request.getParameter("dicenum")); ,因为Integer.parseInt(null)解释为request.getParameter("dicenum"

你需要防止NullPointerException,包围你的Java语句,所以如果请求参数nulldicenum,Java不会评估被包围的块。

null

另一个观察是你不必在 <% if(request.getParameter("dicenum") != null) { %> ... your Java statements <% } %> 重复自己,可以改写为

if... else blocks

同样,这只是一个建议

完整的代码将是:

if (num == 4 || num == 6 || num == 10 || num == 20){
        num = 1 + (Math.random()*num);

答案 1 :(得分:0)

在第一次加载jsp时,您没有检查请求参数是否为null,而服务器可能会生成异常。通过以下方法替换您的scriptlet代码:

>>> import pandas as pd
>>> import numpy as np
>>> 
>>> df = pd.DataFrame([{'y': 2.0, 'x': 1.0, 'id': 100}, {'y': 1.0, 'x': 3.0, 'id': 200}, {'y': 3.0, 'x': 5.0, 'id': 300}, {'y': 6.0, 'x': 3.0, 'id': 400}, {'y': 3.5, 'x': 3.2, 'id': 500}, {'y': 3.0, 'x': 4.5, 'id': 600}])

>>> df = df.set_index('id')
>>> df
       x    y
id           
100  1.0  2.0
200  3.0  1.0
300  5.0  3.0
400  3.0  6.0
500  3.2  3.5
600  4.5  3.0
>>> center_x, center_y = df.mean()
>>> np.sqrt((center_x - df['x'])**2 + (center_y - df['y'])**2)
id
100    2.527295
200    2.102512
300    1.718688
400    2.930396
500    0.424918
600    1.219517
dtype: float64
>>> (np.sqrt((center_x - df['x'])**2 + (center_y - df['y'])**2)).idxmin()
500
>>> df.loc[(np.sqrt((center_x - df['x'])**2 + (center_y - df['y'])**2)).idxmin()]
x    3.2
y    3.5
Name: 500, dtype: float64